Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Модульность в 1С++ (число прочтений - 4476 )
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Модульность в 1С++
21. Февраля 2007 :: 03:44
Печать  
По мотивам этой ветки: http://www.1cpp.ru/forum/YaBB.pl?num=1171365194
решил создать отдельную тему для обсуждения возможности/невозможности, нужности/ненужности модульности для 1С++.

В настоящий момент мне удалось относительно удачно выделить модуль ActiveX в отдельную DLL с сохранением функционала (т.е. не пострадало ни взаимодействие с 1С, ни взаимодействие с 1С++). Тесты в тестовой конфигурации выполняются нормально.

Результаты и исходники находятся здесь:
http://uzhast.fatal.ru/1cpp.modules/
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Модульность в 1С++
Ответ #1 - 21. Февраля 2007 :: 15:19
Печать  
Ну ты гигант. Улыбка Где будем вести обсуждение?

А как ты оцениваешь востребованность семерки в целом, и 1С++ в частности? Как ты считаешь, стоит на это тратить время?

И ты реально думаешь, что кто-то будет писать компоненты для 1С++? А где они возьмут книжку "Технология создания внешних компонент"?  Подмигивание
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #2 - 22. Февраля 2007 :: 03:34
Печать  
Да, красиво получилось Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #3 - 22. Февраля 2007 :: 03:43
Печать  
Цитата:
Отделение было произведено относительно успешно: было создано два модуля "1cpp.dll" без ActiveX и отдельный модуль ActiveX, линкующийся с 1cpp.dll. Тестирование проходит с точно такими же результатами, что и тестирование исходного (не измененного) модуля 1cpp.dll: 26 тестов, пропущен 1, упал 1.

А ты какую исходную версию 1С++ и какой вариант конфы тестирования тестил?

По АктивИкс все тесты проходят
Вот только что проверил на всякий случай на 2.5
Цитата:
Тестирование 1С++
Запущено тестов: 27, из них пропущено - 1, упало - 0.
Общее время выполнения:       4.96 сек.

Пропущены тесты:
1. в
      Причина: Нужно найти другое событие, а не занятое BeforeNavigate2, и на нем попробовать
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #4 - 22. Февраля 2007 :: 03:46
Печать  
Просто по АктивИкс все тесты мои и пару месяцев уже не изменялись, т.е. пока все стабильно Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #5 - 22. Февраля 2007 :: 03:53
Печать  
(Uzhast) У тебя аси случайно нет?
Если есть, найди меня, пообщаемся
Моя - 265666057
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #6 - 22. Февраля 2007 :: 04:02
Печать  
sedmin писал(а) 21. Февраля 2007 :: 15:19:
Где будем вести обсуждение?

А чем здесь плохо? Улыбка

sedmin писал(а) 21. Февраля 2007 :: 15:19:
А как ты оцениваешь востребованность семерки в целом, и 1С++ в частности? Как ты считаешь, стоит на это тратить время?

Не знаю, пока сам смотрю, что происходит Улыбка По всем прогнозам семерка должна была умереть еще лет пять назад, а она вроде живее всех живых Улыбка Значит, что-то в ней есть такое, чего не дает восьмерка. Наверное, это легкость движка и простота конфигураций. Возможно, семерка не умрет еще долго. Ведь это не столько какое-то одно решение, сколько платформа. А платформы просто так не умирают Улыбка Скорее всего, просто семерка и восьмерка просто будут занимать разные ниши (где помельче - семерка, где покрупнее восьмерка).

sedmin писал(а) 21. Февраля 2007 :: 15:19:
И ты реально думаешь, что кто-то будет писать компоненты для 1С++? А где они возьмут книжку "Технология создания внешних компонент"?  Подмигивание

Будут или не будут писать компоненты под 1С++, будет определяться возможностью "1С++ SDK". Если там будут реально удобные и полезные вещи для разработчика, то просто не будет смысла "не писать компоненты для 1С++". Например, возьмем CMyContextBase. Если его не использовать, то написание новых объектов для 1С будет связано с огромным геморроем и тормозами (все эти switch/case, прямой перебор списка имен методов и т.д.). Чтобы избавиться от геморроя, надо либо изобретать свой велосипед, либо вытягивать CMyContextBase из 1С++. Вытягивать из 1С++ на уровне исходников - то еще веселье. Когда я этим занимался, то опомнился, когда обнаружил, что перетянул в свой проект чуть ли не половину 1С++ Улыбка Пришлось ковырять исходники и отрубать зависимость от CComponentClass - тогда получилось более-менее компактно. А вот если будут готовые хедеры и библиотеки, которые подключаются легким движением руки и сразу позволяют задействовать CMyContextBase, то тут уже и мыслей не возникнет, чтобы не использовать 1С++ Улыбка Заодно получится дополнительное продвижение 1С++ Улыбка

Ну и написание плагинов для 1С++ даст разработчикам помимо удобства еще и новые возможности, например, взаимодействие с классами 1С++ (теми, что в 1С). Это вообще реально сделать без интеграции с 1С++ (а то, может, зря я это все Подмигивание)?

Если уж делать "1С++ SDK", то надо сразу позаботиться о документации Улыбка Лучше сразу сделать специальный подраздел в Wiki (она как раз очень для этого подходит). Там можно будет описывать все экспортируемые из 1С++ возможности. Создать плагин для 1С++ будет не сложнее, чем простую ВК по технологии Rainbow - сначала создаем просто ВК по типу Rainbow (как описано в Wiki), а потом просто подключаем заголовки 1С++.

artbear писал(а) 22. Февраля 2007 :: 03:43:
А ты какую исходную версию 1С++ и какой вариант конфы тестирования тестил?

Из репозитория:
CVSROOT: :pserver:anonymous@cvs.alterplast.ru:/usr/cvsroot
Module name: 1cpp
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #7 - 22. Февраля 2007 :: 04:09
Печать  
artbear писал(а) 22. Февраля 2007 :: 03:53:
(Uzhast) У тебя аси случайно нет?
Если есть, найди меня, пообщаемся
Моя - 265666057

264206166
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #8 - 22. Февраля 2007 :: 04:45
Печать  
Да, все ок.
Проходят все тесты, кроме тестов на новый функционал для динамически добавляемых классов.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #9 - 22. Февраля 2007 :: 05:06
Печать  
Чем такой модуль будет отличаться от обыкновенной ВК (подобной rainbow), кроме оригинального способа загрузки?
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #10 - 22. Февраля 2007 :: 05:11
Печать  
spock писал(а) 22. Февраля 2007 :: 05:06:
Чем такой модуль будет отличаться от обыкновенной ВК (подобной rainbow), кроме оригинального способа загрузки?

Линковкой с 1С++ и отсутствием необходимости корректировать конфу при его установке. Отсутствие необходимости менять конфу это не просто каприз. Ведь если модуль фактически становится частью 1С++, то пусть 1С++ и занимается его загрузкой. Ведь когда мы загружаем Excel, мы не занимаемся ручной загрузкой всех необходимых модулей? Более логично, ИМХО, получается.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #11 - 22. Февраля 2007 :: 05:20
Печать  
Цитата:
Линковкой с 1С++ и отсутствием необходимости корректировать конфу при его установке

Так для того, чтобы воспользоваться новым модулем придется править конфу?
Код сам не напишется же.
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Модульность в 1С++
Ответ #12 - 22. Февраля 2007 :: 05:26
Печать  
spock писал(а) 22. Февраля 2007 :: 05:20:
Так для того, чтобы воспользоваться новым модулем придется править конфу?
Код сам не напишется же.

ВК может быть какой-нибудь специализированной (какой-нибудь патчер/хукер) - т.е. не взаимодействующей с языком 1С. Тогда конфу можно вообще для этой ВК не править.

Во-вторых, автозагрузка ВК избавляет от разработчика от необходимости помнить порядок загрузки ВК: сначала 1С++, а потом уже зависимую ВК. Допустим, сейчас все просто, а если зависимости станут более сложными? ИМХО, чем меньше нужно программисту помнить, тем меньше возможности сделать ошибку.

Ну и, если автозагрузка плагинов не нужна, можно сделать эту возможность опциональной (и овцы сыты, и волки целы) Подмигивание
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать