Здравствуйте, McSeem2, Вы писали:
MS>Здравствуйте, oRover, Вы писали:
R>>да, глюкавит, только очень редко. Я написал, что неделями иногда не перезапускаю, а не что у меня не глючит
MS>У меня intellisense валит студию на MC++. Не часто, но в самый неподходящий момент.
Встречал такое.
MS>Повбывав бы.
А кто тогда студии будет писать???
Кстати, у меня янус тоже иногда (почаще чем студия) падает. Стреляем авторов?
MS>Паттерн такой. Делаем Copy/Paste класса и начинаем править копию. На протяжении некоторого времени у нас существует 2 класса с одним и мем же именем. От этого у intellisense отъезжает крыша и он иногда падает. Причем именно иногда, но в самый неподходящий момент. Попытки уточнить условия падения ни к чему не привели. Итого, надо либо выключить intellisense или не пользоваться Copy/Paste вообще (на всякий случай). Undo в дизайнере тоже лучше не нажимать. Copy/Paste в дизайнере тем более не желательно использовать. Глюков в коде допускать нельзя. Что остается?
Избегать Copy/Paste по возможности. Просьба -- тухлыми помидорами не кидаться.
R>ЗЫ. Что я делаю не так? (твоя кстати по-моему любимая фраза )
Проектов много в солюшене? Обычно при более 4 проектах в солюшене и получения массы изменений с VSS студия лочит некоторые dll и все тут. Перезапуск студии и поехали дальше. Самое интересное, что иногда в течение получаса перегружаешь раза 3, а иногда весь день работаешь и ничего
R>>ЗЫ. Что я делаю не так? (твоя кстати по-моему любимая фраза )
A>Проектов много в солюшене? Обычно при более 4 проектах в солюшене и получения массы изменений с VSS студия лочит некоторые dll и все тут. Перезапуск студии и поехали дальше. Самое интересное, что иногда в течение получаса перегружаешь раза 3, а иногда весь день работаешь и ничего
у меня в каждом солюшене минимум по 3 проекта (правда 2 небольших). И ничего, работаем...
... << Rsdn@Home 1.1.4 beta 1 >>
Re[13]: Про изначальную ущербность идеи .Net Forms
Здравствуйте, McSeem2, Вы писали:
MS>По-моему это как-то ненормально, все равно что глазную операцию делать через прямую кишку. Вот делаю я контрол на C#. Для его отладки я создаю простую форму и бросаю туда этот контрол. В дизайнере он должен уметь корректно отобразиться. И в этом-то заключается главная засада. Судите сами. Студия вызывает код контрола, который имеет право быть кривым и глючным (на этапе отладки, конечно же). Это значит, что стабильность среды разработки зависит от того, что я там наковырял своими кривыми руками. И заставляет меня наступать себе на яйца. Вот я редактирую код контрола. Далее переключаюсь в дизайнер, дизайнер видит, что код изменился, пытается скомпилировать и запустить новый код. А код кривой, он приводит к краху (ну или бесконечный цикл, или бесконечное отъедание памяти). И все, студия либо навернется, либо ее надо пришибать. При этом что-нибудь да отъедет в проекте. А если проект большой? MS>Не кажется ли это мягко говоря, слишком самонадеянным? То есть, обещание корректно работать с некорректными объектами? Я имею право иметь кривой код в определенные моменты времени? Получается как у саперов — ты имеешь право на ошибку, но она будет последней в жизни.
Все верно. Идея разделения на design-time и run-time изначально ущербна. В академически продуманных системах такого разделения нет. Смотрите как это сделано в ОС Оберон. В Обероне документ (документ — ну, то бишь — форма с "компонентами") — является персистентным объектом. Любой документ можно "открыть" одновременно в нескольких окнах. (В Дельфи или .НЕТ и т.д. Форма и Окно — одно и тоже, а в Обероне документ отображается в окне, документ и окно — разные вещи). Ну вот, мы просто берем и открываем один и тот же документ в двух разных окнах — в одном окне мы этот документ открываем "только для просмотра", а в другом — "для редактирования". Получается, что и design-time и run-time это одно и тоже. В окне "для редактирования" мы на этот документ "навешиваем" другие "компоненты" и мгновенно видим в "окне для просмотра" как это все выглядит в run-time. Поскольку все "навешиваемые", "внедряемые", и т.д. в документ другие документы тоже персистентные, то после сохранения главного документа сохраняются и они тоже (внутри него).
Непонятно почему создатели Delphi и прочих .НЕТ билдеров решили "пойти другим путем" разделив design-time и run-time на две сущности. Тем самым они добились усложнения системы и "изначальной ущербности".
Кстати среде BlackBox — разработки программ на языке Component Pascal (Oberon-2) исполнилось 10 лет. Oberon microsystems, видимо по этому поводу, сделала ее бесплатной и даже собирается в скором времени открыть ее исходные коды. http://www.oberon.ch/blackbox.html (около 6 мегабайтов)
Рекомендую скачать хотя бы для того, что там в хелпе написано много полезной инфы по идеологии проектирования, типа как в книжке Гамма, Хелм, Джонсон, Влиссидес "Приемы объектно-ориентированного проектирования. Паттерны Проектирования."
Если такой глобальный заголовок подразумевает всего лишь "делаю я контрол" (починяю примус), то ответ прост: Контрол (его основу) надо делать не в виде отдельного компонента, а как бы да, через гланды — на форме берёшь регион и говоришь, что это твой контрол. Далее привинчиваешь разные отрисовки, проперти, лэйаут, а потом всё это (уже отлаженное) заворачиваешь в компонент! Я так делал TreeView — превосходный результат!
Здравствуйте, S.Yu.Gubanov, Вы писали:
SYG>Все верно. Идея разделения на design-time и run-time изначально ущербна.
Хорош гнать. Если код не отлажен, код будет глючить независимо от того, как его называть.
SYG>Ну вот, мы просто берем и открываем один и тот же документ в двух разных окнах — в одном окне мы этот документ открываем "только для просмотра", а в другом — "для редактирования".
я наверно что-то непонимаю, но неужели это так офигенно сложно создавать контрол на ходу? в момент инициализации формы, а не в дезигнере?
по-моему это решило бы все проблемы, а?
p.s. а что, простите за ламерство, в этой вашей студии нет специальной такой программки, предназаначенной для тестирования контролов, как была в шестой студии?
>И все, студия либо навернется, либо ее надо пришибать. При этом что-нибудь да отъедет в проекте. А если проект большой?
В нормальных средах программирования давным давно все автоматически сохраняется, без занудной необходимости нажимать Ctrl + S.
Плюс локальный version control.
Здравствуйте, McSeem2, Вы писали: MS>Скажешь "не используй дизайнер". Но во-первых, нафига он тогда вообще нужен? Во-вторых, все, что мне надо от дизайнера — это координаты. Все! Хрен с ним, с внешним видом в дизайн-тайме. Но на калькуляторе координаты вычислять как-то не хочется.
Во! Именно к этому мы в конце концов и пришли.
(Не под .Net правда... Честно говоря, не помню как в .Net с "менеджерами геометрии".)
Месяца два в проекте были тормоза, а потом вышли на ту же эффективность...
... как только использование дизанера запретили, народ тут же начал писать "групповые контролы" (несколько контролов, которые обычно "ходят вместе"), а над ними еще групповые контролы... даже если они используются всего в 3-4х местах. Пока все это надо было к дизайнеру цеплять, всем было геморойно да и лень возиться оформлять группу как контрол, а тут сазу почти перестроились. В результате сейчас форма собирается из 4 — 10 блоков, и без всякого прямого указания координат.