На днях вышли инструкции по обновлению Composite C1 CMS версии 3.2 к версии 4.0 вручную.
Напомню, что Composite C1 CMS распространяется по двум лицензиям: платной и бесплатной. Причем версия этой CMS - одна и та же без каких-либо ограничений.
Одним из приятных преимуществ платной версии является автоматическое обновление системы к новой версии с помощью пакета расширения доступного из административной консоли (раздел "Система", подраздел "Пакеты"). Обновление происходит буквально в несколько кликов.
Если же вы пользуетесь бесплатной лицензией, то обновить вы систему тоже можете, но только вручную. Для этого компания Composite обычно публикует пошаговые инструкции.
Далее я представлю свой вольный перевод этих инструкций на английском языке. При разночтениях и недостающей информации, обращайтесь к оригиналу инструкций - на английском.
Это пошаговое руководство предназначено для технических специалистов. Перед тем как, начать обновление вручную, рассмотрите еще таких два варианта.
Загрузите и примените трансформационные файлы XSLT к конфигурационным файлам системы:
Важно! Так как обновление этих файлов конфигурации включает некоторые возможности, доступные только в версии 4.1, измените также следующие настройки в полученных файлах конфигурации:
При удалении указанных типов данных (см. ниже), используйте следующие шаги:
Напомню, что Composite C1 CMS распространяется по двум лицензиям: платной и бесплатной. Причем версия этой CMS - одна и та же без каких-либо ограничений.
Одним из приятных преимуществ платной версии является автоматическое обновление системы к новой версии с помощью пакета расширения доступного из административной консоли (раздел "Система", подраздел "Пакеты"). Обновление происходит буквально в несколько кликов.
Если же вы пользуетесь бесплатной лицензией, то обновить вы систему тоже можете, но только вручную. Для этого компания Composite обычно публикует пошаговые инструкции.
Далее я представлю свой вольный перевод этих инструкций на английском языке. При разночтениях и недостающей информации, обращайтесь к оригиналу инструкций - на английском.
Это пошаговое руководство предназначено для технических специалистов. Перед тем как, начать обновление вручную, рассмотрите еще таких два варианта.
- Если вам нужно обновить коммерческий веб-сайт, и вам необходим инструмент для автоматического обновления, а также поддержка, вы можете выбрать один из планов для платной лицензии. Деньги, которые потратит ваш клиент, будет использоваться для финансирования этого проекта с открытым исходным кодом.
- Если вы хотите обновить частный сайт, некоммерческий сайт или сайт, связанный с сообществом, отправьте письмо на maw(собака)composite(точка)net, указав в нем идентификатор вашей инсталляции (в админке: Помощь / О Composite C1 / Installation ID) и веб-адрес вашего сайта. Вы можете получить доступ к автоматическому обновлению бесплатно.
1. Подготовьтесь к обновлению
- Обязательно сделайте резервную копию своего сайта. Если ваш сайт работает на SQL, еще сделать резервную копию базы данных, которая им используется.
- Загрузите чистую версию Composite C1 4.0 c CodePlex: http://compositec1.codeplex.com/releases/view/107254
2. Удалите некоторые пакеты расширения
- Удалите пакет расширения Composite.Tools.PackageCreator, если он установлен.
После этого остановите сайт на веб-сервере (IIS, IIS Express и т.п.)
3. Обновите конфигурационные файлы
Загрузите и примените трансформационные файлы XSLT к конфигурационным файлам системы:
- composite_config.xsl - для ~/App_Data/Composite/Composite.config
- web_config.xsl - для ~/Web.config
- Откройте скачанный файл composite_config.xsl в Visual Studio.
- В меню "XML" выберите пункт "Start XSLT without debugging".
- Укажите файл ~/App_Data/Composite/Composite.config в качестве исходного документа для трансформации.
- Полученным в результате файлом (composite_config.xml), перезапишите ~/App_Data/Composite/Composite.config на сайте.
- Повторите шаги 1-4 для web_config.xsl и ~/Web.config.
- Полученным в результате файлом (web_config.xml), перезапишите ~/Web.config на сайте.
Важно! Так как обновление этих файлов конфигурации включает некоторые возможности, доступные только в версии 4.1, измените также следующие настройки в полученных файлах конфигурации:
- В файле ~/App_Data/Composite/Composite.config найдите и удалите атрибут со значением imageQuality="80"
- В файле ~/Web.config найдите атрибут со значением targetFramework="4.5" и замените значение на "4.0": targetFramework="4.0"
4. Замените файлы и папки
- Распакуйте скачанный дистрибутив Composite C1 с CodePlex (см. выше "1. Подготовка")
- Скопируйте из дистрибутива и замените на сайте следующие файлы:~\Bin*.* (Важно! Кроме Composite.Generated.dll)
~\Composite*.* (Важно! Только файлы, папки - не нужно)
~\Renderers*.*
~\App_Data\Composite\app_offline.htm
~\App_Data\Composite\TreeDefinitions\UrlConfiguration.xml
~\App_Data\Composite\Configuration\C1ConsoleAccess.xml
~\App_Data\PageTemplates\web.config
~\App_Data\Razor\web.config
~\App_Data\UserControls\web.config
~\Frontend\Config\VisualEditor\Styles\core.css
~\Frontend\Config\VisualEditor\Images\smalltext.png
~\default.aspx
~\Global.asax - Удалите следующие папки на вашем сайте, а затем скопируйте те же папки из дистрибутива на ваш сайт:
~\Composite\content\~\Composite\controls\
~\Composite\images\
~\Composite\localization\
~\Composite\schemas\
~\Composite\scripts\
~\Composite\services\
~\Composite\skins\
~\Composite\styles\
~\Composite\templates\
~\Composite\transformations\ - Удалите следующие папки и файлы на сайте, если они там есть:
~\App_Data\Composite\DataMetaData\IPageTemplate_7b54d7d2-6be6-48a6-9ae1-2e0373073d1d.xml~\App_Data\Composite\DataMetaData\Composite.Data.Types.IPageTemplate_7b54d7d2-6be6-48a6-9ae1-2e0373073d1d.xml
~\bin\CompositeC1Contrib.RazorFunctions.dll
~\bin\CompositeC1Contrib.Rendering.MasterPage.dll
~\Composite\flash\
5. Удалите устаревшие типы данных
При удалении указанных типов данных (см. ниже), используйте следующие шаги:
- Удалите связанный с типом данных XML файл из ~/App_Data/Composite/DataMetaData/*.xml
- Удалите хранилище данных:
- Если сайт работает на XML:
- Удалите связанную с типом данных запись в ~/App_Data/Composite/Configuration/DynamicXmlDataProvider.config
- Удалите связанный XML-файл хранилища из ~/App_Data/Composite/DataStores/*.xml
- Если сайт работает на SQL:
- Удалите связанную с типом данных запись в ~/App_Data/Composite/Configuration/DynamicSqlDataProvider.config
- Удалите связанную с типом данных таблицу в базе данных.
Удалить нужно устаревший тип данных:
Если же при компиляции / в журнале системы будут возникать ошибки, проверьте существуют ли в вашей системе следующие устаревшие типы данных, и если существуют, тоже удалите их указанным выше способом:
Если сайт использовал CompositeC1Conrib для создания и использования Razor-функций:
А. Если сайт использовал CompositeC1Conrib для создания и использования Главных страниц (Master Pages):
Composite.Data.Types.IWhiteListedLocale
Если же при компиляции / в журнале системы будут возникать ошибки, проверьте существуют ли в вашей системе следующие устаревшие типы данных, и если существуют, тоже удалите их указанным выше способом:
Composite.Data.Types.ILogEntry
Composite.Data.Types.IAggregationDescription
Composite.Data.Types.ICompositionDescription
Composite.Data.Types.IPageAssociationVisability
Composite.Data.Types.IXhtmlEditorElementClassConfiguration
Composite.Data.Types.IDataFieldDescriptor
Composite.Data.Types.IDataFieldDescriptor_FormRenderingProfile
Composite.Data.Types.IDataFieldDescriptor_ValidatorFunctionMarkup
Composite.Data.Types.IDataTypeAssociationDescriptor
Composite.Data.Types.IDataTypeDescriptor
Composite.Data.Types.IDataTypeDescriptor_DataScope
Composite.Data.Types.IDataTypeDescriptor_KeyFieldName
Composite.Data.Types.IDataTypeDescriptor_StoreSortOrderFieldName
Composite.Data.Types.IDataTypeDescriptor_SuperInterface
Composite.Data.Types.IAggregationDescription
Composite.Data.Types.ICompositionDescription
Composite.Data.Types.IPageAssociationVisability
Composite.Data.Types.IXhtmlEditorElementClassConfiguration
Composite.Data.Types.IDataFieldDescriptor
Composite.Data.Types.IDataFieldDescriptor_FormRenderingProfile
Composite.Data.Types.IDataFieldDescriptor_ValidatorFunctionMarkup
Composite.Data.Types.IDataTypeAssociationDescriptor
Composite.Data.Types.IDataTypeDescriptor
Composite.Data.Types.IDataTypeDescriptor_DataScope
Composite.Data.Types.IDataTypeDescriptor_KeyFieldName
Composite.Data.Types.IDataTypeDescriptor_StoreSortOrderFieldName
Composite.Data.Types.IDataTypeDescriptor_SuperInterface
6 . Обновите Razor-функции
Если сайт использовал CompositeC1Conrib для создания и использования Razor-функций:
- Откройте для редактирования каждую такую функцию и выполните шаги 2-5:
- Удалите:
@using CompositeC1Contrib.RazorFunctions;@using CompositeC1Contrib.RazorFunctions.FunctionProvider;
@using CompositeC1Contrib.RazorFunctions.Html;
- Замените:
@inherits CompositeC1WebPage
и
@inherits CompositeC1Contrib.RazorFunctions.CompositeC1WebPage
на:
@inherits RazorFunction - Замените:
@Html.C1().Body(...)
на:
@Html.C1().Markup() - Конвертируйте параметры функций по образцу с:
[FunctionParameter("Include Parent Page", "Check the box if you want parent page to be displayed in navigation", false)]
на:
[FunctionParameter(Label = "Include Parent Page", Help = "Check the box if you want parent page to be displayed in navigation", DefaultValue = false)]
7. Обновите Главные страницы (Master Pages)
А. Если сайт использовал CompositeC1Conrib для создания и использования Главных страниц (Master Pages):
- Откройте для редактирования все файлы ~/App_Data/PageTemplates/*.master и выполните шаги 2-3 для каждого.
- Замените по образцу вставки заголовков страницы с:
<rendering:Title ID="title" runat="server" />
на:
<c1:Title ID="title" runat="server" /> - Замените по образцу заполнители контента с:
<rendering:Placeholder ID="aside" Title="Aside" [Default="true"] runat="server" />
на:
<c1:Render Markup="<%# aside %>" runat="server" />
- Откройте для редактирования все файлы ~/App_Data/PageTemplates/*.master.cs и выполните шаг 2 для каждого.
- Замените или добавьте по образцу пространства имен, наследование главных страниц MasterPagePageTemplate, информацию о заполнителях контента с:
public partial class _1_column__full_width : System.Web.UI.MasterPage
{
}
на:
using Composite.Core.Xml;
using Composite.Plugins.PageTemplates.MasterPages;
using Composite.Core.PageTemplates;
public partial class Simple : MasterPagePageTemplate
{
public override Guid TemplateId
{
get { return new Guid("54d5a744-c31e-422d-8885-acd96721a351"); }
}
public override string TemplateTitle
{
get { return "Simple (master page)"; }
}
[Placeholder(Title="Content", IsDefault=true)]
public XhtmlDocument content { get; set; }
[Placeholder(Title="Aside")]
public XhtmlDocument aside { get; set; }
}
- Откройте для редактирования все файлы ~/App_Data/PageTemplates/Frontpage.master.
- Замените:... AutoEventWireup="true" CodeFile="1 column, full width.master.cs" Inherits="_1_column__full_width" %>
на:... AutoEventWireup="true" CodeFile="Frontpage.master.cs" Inherits="Frontpage" %>
8. Завершите обновление
- После обновления, запустите сайт на веб-сервере (IIS, IIS Express и т.п.)
Комментариев нет:
Отправить комментарий