Convert NET Framework 1.1 to VS2005 project.
Базовая функциональность конвертера проекта 2003 в проект 2005 описана здесь - конвертирование конфигурационного файла, Датасетов, страниц и прочего. Однако дальше возникает собственно задача пребразования полученного WEB-проекта VS2005 в беспроектную архитектуру VS2005.
После работы мастера, каждая ASPX-страничка у меня оказалась представлена в виде четырех файлов и я получил 569 сообщений об удалении различных методов NET1 из NET2. Напрямую полученные странички запустить нельзя, ибо директива <%@ Page содержат атрибут Codebehind, который поддерживается только в WEB-проекте. В беспроектном решении VS2005 странички выглядят так, а в проектном - так. Теперь изменена иерархия наследования страниц, они наследуются от System.Web.UI.Page, дальше следует выполнить следующие действия:
- Меняем наследование в Inherits в коде *.aspx.vb и удаляем блок в DesignerGenerationCode
- Удаляем Namespace (ибо проект называется по-другому)
- Атрибут CodeBehind в ASPX-файле меняем на CodeFile
- В атрибуте Inherits указываем имя класса из VB-кода.
- Почему-то мастер при преобразовании всем зарегистрированным контролам на страничке дает единый префикс UC1. Это надо исправить тоже.
- Схему валидации страницы для простоты лучше установить IE6. После чего страничный текст можно закрыть.
- Далее удаляем файлы вида *.aspx.designer.vb
- Ресурсы пока (!) просто копируем в App_GlobalResources
Выполняем следующие изменения в библиотеках:
- Заменяем выборку выборку из Setting c "ConfigurationSettings.AppSettings("connectionString")" на System.Configuration.ConfigurationManager.ConnectionStrings("siSchoolManagerConnectionString").ToString
- И выборку параметров на system.Configuration.ConfigurationManager.AppSettings("AdminEmail").ToString
- Добавляем параметры в конфигурацию - Connect в раздел configuration->connectionStrings, а просто параметры в раздел configuration->appSettings
- Заменяем старый фрагмент отправки NET1 почты на новый NET2.
- Плюс теперь это статический и перегруженный модуль, а не просто метод в классе. Заменяем все вызовы на страницах на него.
меняю RegisterStartupScript( "Focus", strBuilder.ToString()) на ClientScript.RegisterStartupScript(Me.GetType(), "Focus", strBuilder.ToString() ) и If (Not me.IsClientScriptBlockRegistered("clientScriptCheckAll")) Then Me.RegisterClientScriptBlock("clientScriptCheckAll", jsScript.ToString()) на If (Not clientscript.IsClientScriptBlockRegistered("clientScriptCheckAll")) Then clientscript.RegisterClientScriptBlock( me.GetType(),"clientScriptCheckAll", jsScript.ToString()) Для отладки меняю конфигурацию в Manager с
1: <?xml version="1.0" encoding="utf-8" ?>
2: <configuration>
3: <system.web>
4:
5: <authorization>
6: <deny users="?" />
7: </authorization>
8:
9: </system.web>
10: </configuration>
1: <?xml version="1.0" encoding="utf-8" ?>
2: <configuration>
3: <system.web>
4:
5: <authorization>
6: <deny users="*" />
7: </authorization>
8:
9: </system.web>
10: </configuration>
|