Вещь, о которой я расскажу, ни в коем случае не используйте в рабочем окружении. Чтобы солнышко, как в анекдоте про программиста, всякий раз восходило на востоке, а садилось на западе, лучше вообще от греха подальше пропустить этот материал. В многообразном программном мире автор относится к той категории экстремальщиков, которым во чтобы то ни стало не терпится заглянуть в будущее и попробовать на себе предварительные версии программных продуктов, которые когда-нибудь — кто-то раньше, кто-то позже — станут нашим самым настоящим настоящим. Более того, я бы сказал, нашим всем :) Итак, сегодня в гостях Windows 8.1 Enterprise Preview, Visual Studio 2013 Ultimate Preview, Team Foundation Server 2013 Release Candidate и SQL Server 2014 Evaluation Edition CTP1. Сейчас это все предварительные версии, и, как все предварительные версии, они бесплатны.
Исторически на лэптопе с Windows 8 Enterprise имелась VS2013 Preview. По независимым причинам потребовалось установить TFS 2013 и SQL 2014. Поскольку для TFS SQL Server в каком-либо виде по-любому необходим, резонно возникла идея задействовать 14-й попутно для этой цели, дабы не умножать число сущностей. Проблема состояла в том, что Visual Studio, неважно, 2012-я, 13-я или какая-нибудь еще, тянет с собой массу SQL Serverных компонентов.
Рис.1
Например, T-SQL Language Service используется для IntelliSense в SQL Server Data Tools, Data-Tier Application Framework — для отчуждения и деплоймента датабазного проекта, System CLR Types — это, в основном, геопространственные расширения, которые можно использовать в приложении независимо от SQL Server и т.д. Так что даже думать нечего поставить сюда 2014 СТР1, который с негодованием реагирует на все, что связано с предыдущими версиями SQL Server:
Рис.2
Причем, если Вы вдруг решите снести все понаставленные Visual Studio SQL Serverные компоненты (Рис.1), с расчетом на то, что 2014 CTP1 их все равно поставит при своей установке, могу разочаровать — на возникновение Рис.2 это не влияет. По-видимому, само наличие VS действует на него, как красная тряпка на быка.
Ничего не попишешь — пришлось поднимать виртуалку и ставить на нее Windows 8.1 Preview, пока она еще халявна, и сразу на чистую систему — 2014 CTP1. Здесь необходимо оговориться. На чистую систему он не встанет, потому что хочет .NET Framework 3.5.
Рис.3
Ну или встанет, но криво. Например, Вы заказывали ему установить компоненты вот такие вот:
Рис.4
а он половину из них не поставит, потому что они требуют .NET Framework.
Рис.5
Непонятно, почему Analysis Services при этом встали (многомерные). Там ведь тоже можно создавать CLR-процедуры/функции. Как бы то ни было. Ясно, что .NET Framework требуется установить перед установкой SQL Server. Причем ставить нужно именно .NET Framework 3.5. Версии 4.х ставить бесполезно, потому что Windows 8.1 и так идет с .NET Framework 4.5.1 (который не вопринимает 2014 СТР1), поэтому фреймворки 4.х туда попросту не установятся:
Рис.6
.NET Framework 3.5 проще всего поставить с носителя, откуда ставилась ОС Windows 8.x. Открываем elevated command prompt:
Рис.7
и пишем команду:
Dism /online /enable-feature /featurename:NetFx3 /All /Source:D:sourcessxs /LimitAccess
Рис.8
Теперь, если пойти в Control Panel -> Programs and Features -> Turn Windows Features on or off, можно видеть, что .NET Framework 3.5 на 8.1 установился:
Рис.9
После этого установка SQL Server 2014 CTP1 проходит успешно.
Если бы мы хотели использовать возможности отчетности в TFS, нам бы понадобились Analysis Services и Reporting Services в составе SQL Server. Здесь мы такой задачи не ставим, но коль скоро речь зашла, необходимо отметить:
Рис.10
Установку AS для TFS производим в режиме Multidimensional and Data Mining. Он существует с версии 7.0 (1998) и исторически TFS с ним привык работать и создавать в нем свои кубы Code Churn, Current Work Item, Work Item History, Build, Test Result, Code Coverage и т.д. в многомерной базе Tfs_Analysis на основе реляционного хранилища Tfs_Datawarehouse. Tabular Mode официально возникла в качестве альтернативного представления/хранения в текущей версии — 2012 (а во времена 2008 R2 существовала в виде персонального инструмента в Excel и коллективного в SharePoint PowerPivot), и TFS еще не умеет с ней работать. Хотя попытки предпринимаются. До некоторой степени они были вызваны тем, что Power View — интерактивный инструмент построения отчетности в Excel, безумно красивый и динамичный по сравнению с традиционными Reporting Services / ReportViewer Controls, — умел работать только с табулярными моделями. Однако 31 мая эту несправедливость поправили, и теперь он всеяден. С одинаковой красотой может строить отчеты как по табулярным, так и по многомерным моделям. Для этого нужно не забыть установить <a href=«support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2833645&kbln=en-us>SP1 CU4, точнее, 2012_SP1_PPExcel_CU4_2833645_11_0_3368_x64.
TFS ставим на хост по причине
Рис.11
На Windows 8 встает нормально. Следует выбирать Advanced режим конфигурации
Рис.12
по той причине, что SQL Server находится на удаленной машине:
Рис.13
Предварительно следует убедиться, что SQL Server для TFS достижим с той машины, куда устанавливается TFS. Для этого нужно на файрволе открыть порты для входящих соединений, как описано в документации, запустить на хосте любое приложение, могущее работать с базами данных: PowerShell, Excel, что угодно — и попробовать из него с ним соединиться. Например, из Excel в меню Data -> From Other Sources -> From SQL Server указываем машину, на которой он установлен экземпляром по умолчанию:
Рис.14
и убеждаемся, что соединение нормально устанавливается — выводится список баз:
Рис.15
В нашем случае TFS ставится на Windows 8, поэтому возможности отчетности в нем будут недоступны — см.документацию: Additionally, if you installed TFS on a client operating system, such as Windows 7, you can't add reporting as described here, because it isn't supported on client operating systems. Если бы это была серверная операционная система, и отчетную функциональность собирались задействовать, то наряду с доступом к Database Engine нужно было бы протестировать доступ со стороны TFS к AS и RS. Службы анализа, установленные экземпляром по умолчанию, слушают порт ТСР 2383. Для именованного экземпляра порт назначается динамически. В этом случае нужно будет открыть порт 2382, по которому слушает SQL Browser Service. Для служб отчетности никакие порты специально открывать не требуется. Единственно, поскольку IIS не требуется (см.Рис.9), стоит убедиться, что 80-й порт открыт, чтобы можно было извне достучаться по HTTP. Начиная с версии 2008, службы отчетности используют непосредственно системный драйвер Http.sys, чтобы принимать запросы, адресованные к конечным точкам (URL и портам), сконфигурированным для Reporting Services. Конфигурация осуществляется при помощи утилиты Reporting Services Configuration Manager. Убеждаемся, что со стороны TFS можно доступиться до сервера отчетности:
Рис.16
Дальнейшая установка TFS не вызывает затруднений. На этапе Readiness Check получается сводка результатов, которая либо сообщает, что все в порядке и можно доустановиться окончательно:
Рис.17
либо перечень замечаний, которые необходимо исправить, чтобы завершить установку. Например
Рис.18
Ошибка TF255457 произошла из-за того, что для сервисной учетной записи TFS был указан локальный пользователь — следом за Рис.13
Рис.19
Когда SQL Server с базами TFS располагается на другой машине, требуется строго доменный аккаунт. Данное ограничение отнюдь не облегчает развертывание TFS в демонстрационных и тестовых средах и имеет, видимо, столь же философские корни, как и Рис.11 или невозможность создавать новые проекты Windows Store, если VS13 установлена не на Windows 8.1.
Ошибка TF255149 происходит, как если бы мы в процессе установки SQL Server забыли отметить какую-либо компоненту, жизненно необходимую TFS. Скажем, полнотекстовый поиск на Рис.4. В этом случае запускаем заново процесс установки SQL Server, говорим New Instance or add features to existing, затем явно указываем, что Add:
Рис.20
и на открывшемся экране Рис.4 доставляем пропущенную функциональность.
Автор: alexejs