Перевод OXITE на System.Web.Mvc.dll версии 2.0.0.0. Интеграция Spark View Engine в OXITE. Прощай технология WebForms!

m-r Tarakanoff 2010 M10 31
682
0
0
0

Теперь OXITE может работать с более новыми функциями доступными в ASP.NET MVC 2.0. Ура!   Важный подводный камень. После подключения новой версии сборки, компилятор напрочь отказывается...

Теперь OXITE может работать с более новыми функциями доступными в ASP.NET MVC 2.0. Ура!

 

Важный подводный камень. После подключения новой версии сборки, компилятор напрочь отказывается компилировать представления (в случае, если они работают на WebForms). Для устранения проблемы, нужно в web.config, вслед за тегом </system.webServer> добавить:

 

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

И теперь шаблоны представлений OXITE в формате самого HTML-ориентированного двигателя представлений Spark View Engine. Мощная, но тяжелая для проектов на OXITE инфраструктура WebForms не выдержала конкуренции и была снята с производства. :)

Чтобы изменить двигатель представлений в OXITE c WebForms на Spark, нужно создать класс OxiteDescriptorBuilder, наследовать его от Spark.Web.Mvc.DefaultDescriptorBuilder и переопределить методы с именем вида "...Locations".

Затем создать класс OxiteSparkViewEngine и наследовать его от Spark.Web.Mvc.SparkViewFactory, а там уже заменить DescriptorBuider на свой собственный.

После этого регистрируем новый двигатель и после этого, мы можем создавать любые пути для представлений, интегрировать поддержку различных тем и даже изменить расширение файлов представлений (*.spark).

Вообще, в документации по Spark View Engine рекомендуют использовать DescriptionFilterBase, а не DefaultDescriptionBuilder. По мне, так зачем реализовывать всю логику, когда можно переопределить несколько методов под свои нужды?

 

 

 

Оцените пост

-4
Дальше