13 October 2008

MVC Framework + .NET Framework 2.0 = Майже працює

Вчора встановлював додаток написаний на MVC Framework на хостінг який підтримує тільки .NET 2.0. Коротко – майже працює ;).

По-перше знадобилось, закинути усі бібліотеки .NET 3.5 які використовує додаток, в моєму випадку це були System.Core, System.ServiceModel.Web, тощо.

Далі, виправив web.config так щоб по прибирати бібліотеки які не використовуються додатком, наприклад в мене не використовувались System.Web.Extensions;

Це теж, весь код сторінок повинен бути С# 2.0, ніяких там тобі екстеншен методів… В код бехаінд зрозуміло що можна використовувати будь що. Дещо з коду на C# 3.0 зі сторінки просто перейшло в код-бехаінд.

І останнєControllerActionInvoker який працює по замовчуванню, використовує лямбда експрешенс для оптимізації швидкості, а той у свою чергу констуртор класу DynamicMethod який не підтримується в .NET 2.0 :(. Рішення просте, – скористатися можливостями розширення MVC Framework і переписати ControllerActionInvoker, так щоб він використовував тільки те що є. Тут вже є два шляхи бо швидкий для кодування, або швидкий для роботи. Я обрав перший ;). Просто за допомогою рефлекшена викликаю методи контроллера ;). Якщо знадобиться пишіть, надішлю…

Ось таке от в мене хоббі ;)

Помічено як: ,
 

Коментарі

# Ivan Kolodyazhny said:

Даже не задумывался над тем, что его можно заставить работать на .net 2.0. Интересно как работает url rewriting в таком случае.

14 October 08 at 12:22 AM
# Mike Chaliy said:

Намана працює ;), а в чому ти вабачаєш проблему? Роутінг нічого в асп.нет не змінює, він працює зверхи.. Зрозуміло що лібу System.Web.Rounting і System.Web.Abstravtions теж потрібно додати.

Якщо ти про урл без .aspx то це фітча не MVC фреймоврка, а IIS (для IIS 7 нейтів, для 6го потрібно налаштовувати, та і то все працювати не буде). Зрозуміло що на хостінгу де є тільки .NET 2.0, є тільки IIS 6. Плюс ще був рекваірмент залишити старі шляхи, а тому в мене всі сторінки так і залишились з .aspx.

14 October 08 at 12:30 AM
# Mike Chaliy said:

Наразі, я до SP1 пробував WCF та WPF, вони теж працюють ;). Але це все просто фан, ця фігня не підтримується Майрософтом ;).

14 October 08 at 12:36 AM
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.

About Mike Chaliy

Вчу українську, багато працюю. Цікавлюсь моделюванням небезпек. Більшість часу витрачаю на .Net.