Добавил поддержку дизайнера веб форм
От: seregaa Ниоткуда http://blogtani.ru
Дата: 05.03.10 22:05
Оценка: 171 (3)
Ревизия 8558.

Теперь по двойному клику по контролу для него автоматически сгенерируется обработчик умолчального события. Также можно генерировать обработчики и навешивать их на события в проперти гриде дизайнера. Думаю, что на этом можно считать реализацию поддержки дизайнера для WebApplication проектов завершенной. Пора приступать к отлову и исправлению багов

По ходу дела пришлось переписать реализацию CodeModel (Nemerle.VisualStudio.FileCodeModel) — взял ее практически 1к1 от железного питона, добавив поддержку вариантов и переписав методы get_signature — они используются source outliner-ом. Пришлось на это пойти из за того, что дизайнер работает через CodeModel, и для генерации кода она должна быть two-way, т.е. изменения исходного кода должны отображаться на модели и наоборот — изменения модели — отображаться на код. А модель, реализованная в интеграции, была только однонаправленной — все методы, меняющие модель представляли собой затычки с NotImplementedException, т.е. модель была read-only. Начав прикручивать возможность ее изменения я понял, что проще передрать реализацию заново, что и сделал.

По ходу старался сохранить специфику, написанную в старой реализации под особенности Немерле, надеюсь мне это удалось. Насколько я понял, эти изменения затронули только дизайнер веб форм и source outliner. Дизайнер виндовс форм по моему работает напрямую с CompileUnit, поэтому он сломаться не должен был. Я его погонял немного — вроде все Ok. Кстати, не смог найти способа запустить source outliner, поэтому проверить его не получилось.

Еще заметил, что шаблоны проекта WebApplication не включались в инсталлятор — это тоже пофиксил.

Дизайнер форм можно протестировать только на полной студии. Shell не умеет работать с проектами типа WebApplication, а шаблон для WebSite я еще не дописал. Кто нибудь пробовал создавать такие проекты вручную? — у меня при компиляции WebSite проекта появляются ошибки:

Error 5 `override' specified on method ASP.default_aspx.FrameworkInitialize() : void, but there is no such member in parent to override "C:\Users\Sergey\Documents\Visual Studio 2008\WebSites\WebSite1\Default.aspx.n"
Error 6 `override' specified on method ASP.default_aspx.GetTypeHashCode() : int, but there is no such member in parent to override C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website1\47a1ea9c\5a951934\App_Web_hacwp2ya.0.n 313
Error 7 `override' specified on method ASP.default_aspx.ProcessRequest(context : System.Web.HttpContext) : void, but there is no such member in parent to override C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website1\47a1ea9c\5a951934\App_Web_hacwp2ya.0.n 319
Error 8 unimplemented interface method System.Web.IHttpHandler.get_IsReusable() : bool (in ASP.default_aspx type) C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website1\47a1ea9c\5a951934\App_Web_hacwp2ya.0.n 124


а вот кусок файла, сгенерированного аспнетом (App_Web_hacwp2ya.0.n):

    public class default_aspx : _Default,  System.Web.IHttpHandler 
    {

...        
        #line 912304 "C:\Users\Sergey\Documents\Visual Studio 2008\WebSites\WebSite1\Default.aspx.n"
        [System.Diagnostics.DebuggerNonUserCodeAttribute]
        protected override FrameworkInitialize () : void
        {
            base.FrameworkInitialize();
            this.__BuildControlTree(this);
            this.AddWrappedFileDependencies(ASP.default_aspx.__fileDependencies);
            this.Request.ValidateInput();
        }
...


непонятно, почему негенерировались эти методы (FrameworkInitialize() etc). Вобщем, буду разбираться.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re: Добавил поддержку дизайнера веб форм
От: Clerk  
Дата: 08.03.10 07:32
Оценка:
Здравствуйте, seregaa, Вы писали:

Создаю новый проект "ASP.NET Web Application", мышкой добавляю на главную форму TextBox, пытаюсь сменит id на '_tbTest' — ничего не выходит.
... << RSDN@Home 1.2.0 alpha 4 rev. 1427>>
Re[2]: Добавил поддержку дизайнера веб форм
От: seregaa Ниоткуда http://blogtani.ru
Дата: 11.03.10 06:52
Оценка:
Здравствуйте, Clerk, Вы писали:

C>Создаю новый проект "ASP.NET Web Application", мышкой добавляю на главную форму TextBox, пытаюсь сменит id на '_tbTest' — ничего не выходит.


Да, переименование контролов не работает ( Пара вечеров под отладкой ни к чему не привели. К тому же закончился триал 6-го рефлектора, который я использовал для отладки системных сборок фреймворка и студии. Поэтому пока переключаюсь на другие задачи — поддержку Web Site и MVC проектов.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[2]: Добавил поддержку дизайнера веб форм
От: seregaa Ниоткуда http://blogtani.ru
Дата: 03.04.10 20:00
Оценка: 6 (1)
Здравствуйте, Clerk, Вы писали:

C>Создаю новый проект "ASP.NET Web Application", мышкой добавляю на главную форму TextBox, пытаюсь сменит id на '_tbTest' — ничего не выходит.


fixed in r8715
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.