1. Загружаем текущий исходный код. Существует, конечно, возможность скачать код одним архивом (http://mojoportal.codeplex.com/), но, по утверждению Joe, в этом случае регулярно возникают необъяснимые сверхъестественные глюки.
    1. Устанавливаем программу TortoiseHG http://tortoisehg.bitbucket.org/
    2. Создаём папку(в моём случае /mojocode), где хотим поместить исходный код.
    3. Правой кнопкой мыши на папку и выбираем TortoiseHG > Clone
    4. Указываем, как источник адрес https://hg.codeplex.com/mojoportal
      Настройка TortoiseHG
    5. Нажимаем клонировать.
      Клонирование кода mojoPortal
  2. Делаем копию файла mojoPortal.sln (лежит в корневой папке), переименовываем его, например, в mojoportal-ym.sln и запускаем.
  3. Создаём пустую базу данных, пользователя и  прописываем строку подключения в user.config (файл необходимо создать из user.config.sample , который лежит в папке /Web).
    Более подробно рассказано в статье по быстрому запуску mojoPortal.
  4. Запускаем отладку mojoPortal.Web (В окне браузера должен стартовать процесс установки).
  5. Создаём папку YandexMap в директории с исходным кодом.
  6. Создаём проект YandexMap.Web.UI указав путь к папке из п.5
    Создание проекта YandexMap.Web.UI
  7. Удаляем из проекта YandexMap.Web.UI файл Default.aspx.
    Удаление из проекта YandexMap.Web.UI файла Default.aspx.
  8. Создаём следующие папки в директории /YandexMap/YandexMap.Web.UI/:
    1. YandexMap/
    2. YandexMap/Controls/
    3. Setup/
    4. Setup/applications/
    5. Setup/applications/YandexMap/
    6. Setup/applications/YandexMap/FeatureDefinitions
    7. Setup/applications/YandexMap/SchemaInstallScripts
    8. Setup/applications/YandexMap/SchemaUpgradeScripts
      *папки из пунктов b, g и h созданы на перспективу.
      Создание папок в директории /YandexMap/YandexMap.Web.UI/
  9. Создаём библиотеку классов YandexMap.Business
    Создание библиотеки классов YandexMap.Business
  10. Создаём библиотеку классов YandexMap.Data.MSSQL (если для работы модуля будет нужна база данных)
    Создание библиотеки классов YandexMap.Data.MSSQL
  11. Добавляем ссылки в проект YandexMap.Web.UI на следующие проекты
    1. mojoPortal.Business
    2. mojoPortal.Business.WebHelpers
    3. mojoPortal.Features.UI
    4. mojoPortal.Net
    5. mojoPortal.Web
    6. mojoPortal.Web.Controls
    7. mojoPortal.Web.Editor
    8. mojoPortal.Web.Framework
    9.  YandexMap.Business
      Добавление ссылок в проект YandexMap.Web.UI
  12. Добавляем ссылки в проект YandexMap. Business  на следующие проекты
    1. YandexMap.Data.MSSQL
      Добавление ссылок в проект YandexMap. Business
  13. Добавляем стандартную папку “ASP.NET” – App_GlobalResources в проект YandexMap.Web.UI
    Добавление стандартной папки ASP.NET – App_GlobalResources
  14. В эту папку добавляем файл ресурсов YandexMapResources.resx
    Добавление файла ресурсов YandexMapResources.resx
  15. Открываем файл mojoPortal.Web/Web.config и копируем  раздел  <pages> </pages> в файл YandexMap.Web.UI/Web.config (раздел <system.web></system.web>). Сохраняем.
    Настройка Web.config
  16. Создаём папку App_MasterPages в проекте YandexMap.Web.UI и в неё копируем файл layout.Master из WebStore.UI/App_MasterPages
    Создание файла layout.Master
  17. В папке YandexMap.Web.UI/YandexMap/ создаём пользовательский элемент управления YandexMapModule.ascx
    Создание пользовательского элемента управления YandexMapModule.ascx
  18. Запускаем CodeSmith Generator Studio, открываем файл Mp_UI-starter_ModuleControlGenerator.cst. В диалоговом окне заполняем поля:
    1. Author: mojoportal.net.ua
    2. BusinessLayerNameSpace: YandexMap.Business
    3. ControlName: YandexMapModule.ascx
    4. FeatureName: YandexMap
    5. UINameSpace: YandexMap.UI
      Генерирование кода Mp_UI-starter_ModuleControlGenerator.cst в CodeSmith Generator Studio
    6. Нажимаем кнопку Generate.
  19. Копируем часть созданного кода от // Author: до конца и заменяем этим содержимое файла YandexMap.Web.UI/YandexMap/YandexMapModule.ascx.cs .
    Изменение файла YandexMapModule.ascx.cs
    Закомментируем строку using log4net;
    Закомментирование using log4net;
    Сохраняем.
  20. Копируем часть содержимого от начала до // Author: и заменяем этим содержимое файла YandexMap.Web.UI/YandexMap/YandexMapModule.ascx .
    Сохраняем.
  21. Выбираем Свойства проекта YandexMap.Web.UI - > События построения  - >Командная строка события после построения и вставляем следующие строки:

xcopy /s /y "$(ProjectDir)bin\YandexMap.Web.UI.dll" "$(SolutionDir)Web\bin\"
xcopy /s /y "$(ProjectDir)bin\YandexMap.Business.dll" "$(SolutionDir)Web\bin\"
xcopy /s /y "$(ProjectDir)bin\YandexMap.Data.dll" "$(SolutionDir)Web\bin\"
xcopy /s /y "$(ProjectDir)YandexMap\*.ashx" "$(SolutionDir)Web\YandexMap\"
xcopy /s /y "$(ProjectDir)YandexMap\*.ascx" "$(SolutionDir)Web\YandexMap\"
xcopy /s /y "$(ProjectDir)YandexMap\*.aspx" "$(SolutionDir)Web\YandexMap\"
xcopy /s /y "$(ProjectDir)YandexMap\Controls\*.ascx" "$(SolutionDir)Web\YandexMap\Controls\"
xcopy /s /y "$(ProjectDir)App_GlobalResources\*.resx" "$(SolutionDir)Web\App_GlobalResources\"
xcopy /s /y "$(ProjectDir)Setup\*" "$(SolutionDir)Web\Setup"

Настройка событий построения проектапроекта YandexMap.Web.UIСохраняем.

  1. Копируем файл \Web\Setup\applications\mojoportal-core\FeatureDefinitions\10000_HtmlContentModule.config в папку \YandexMap\YandexMap.Web.UI\Setup\application\YandexMap\FeatureDefinitions
    Переименовываем его в 10000_YandexMapModule.config
  2. Открыть скопированный файл 10000_YandexMapModule.config
    1. Заменить featureGuid="881e4e00-93e4-444c-b7b0-6672fb55de10" на featureGuid="b54eab73-1892-4ab2-973d-cbdaf163ab44"
      b54eab73-1892-4ab2-973d-cbdaf163ab44 взят из файла YandexMapModule.ascx.cs, строка // FeatureGuid …
    2. В строке supportedDatabases="MSSQL,MySQL,pgsql,SQLite,FirebirdSql,SqlAzure,SqlCe"
      оставляем только supportedDatabases="MSSQL" (если будет использоваться данная СУБД)
       
  3. Открываем созданный в п.14 файл YandexMapResources.resx
    Добавляем в поле Имя – FeatureName, а в поле значение - Yandex Map
    Добавление параметра FeatureName в файл YandexMapResources.resx
  4. В файле 10000_YandexMapModule.config
    1. параметру  resourceFile присваиваем значение YandexMapResources resourceFile="YandexMapResources"
    2. параметру  featureNameReasourceKey присваиваем значение FeatureName featureNameReasourceKey="FeatureName"
    3. параметру  controlSource присваиваем значение YandexMap/YandexMapModule.ascx controlSource="YandexMap/YandexMapModule.ascx"
    4. параметру  isSearchable присваиваем значение false isSearchable="false"
    5. параметру  searchListNameResourceKey присваиваем пустое значение searchListNameResourceKey=""
    6. параметру  deleteProvider присваиваем пустое значение deleteProvider=""
    7. удаляем все <featureSetting … />
    8. Сохраняем
      Настройка установки модуля YandexMap
  5. Запускаем построение приложения YandexMap.Web.UI
  6. В браузере запускаем установку /Setup/Default.aspx . В логе установки должна появиться следующая строка:
    Настройка модуля Yandex Map - 00:00:00.6970399
  7. Входим под учётной записью [email protected]/admin
  8. Создаём новую страницу и добавляем на неё модуль Yandex Map
  9. Переходим на вновь созданную страницу. На ней должна появиться надпись:
    This will soon be the entry point to the YandexMap.
    Отображение модуля Yandex карты в браузере

На этом общие инструкции по созданию модулей заканчиваются и начинается настройка непосредственно Яндекс карт.

Вверх