C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Сетевая работа шестого Builder-а
Deem
Отправлено: 19.07.2005, 16:21


Мастер участка

Группа: Участник
Сообщений: 327



Пока только сделал общую папку в сети и все редактируют и компилят свои модули прямо там. Что есть специального для такой работы в Билдере? Olegenty, вроде, чего-то говорил по поводу. Подкините идеи.
В книжке роюсь, ничего не нашел.
Или в винде папки синхронизировать как-нибудь, чтобы она сама качала измененные файлы на локальную машину. Редактируют иногда с двух машин один файл (не одновременно).

Отредактировано Deem — 19/07/2005, 16:22
Gedeon
Отправлено: 19.07.2005, 17:08


Ветеран

Группа: Модератор
Сообщений: 1742



Да подключите вы диск на эту сетевую папку обоим одинаковый и забудьте.
Deem
Отправлено: 20.07.2005, 15:37


Мастер участка

Группа: Участник
Сообщений: 327



Ну, типа, на одной из машин базовая директория, другие имеют ее как сетевой диск? Так уже есть. Однако, файлы могут быть открыты на двух машинах. Билдер переспрашивает, перезагрузить ли файл, если он изменен извне. Но иногда не может перезагрузить. Говорит что-то про связи с файлом или использование другой программой. Я думал, можно обойти это как-то. А вобще, и так нормально. Если более крутого способа нет. smile.gif
Gedeon
Отправлено: 20.07.2005, 16:37


Ветеран

Группа: Модератор
Сообщений: 1742



Дык это как и с любым файлом, как его можно из двух мест одновременно редактировать?
Doga
Отправлено: 03.08.2005, 20:29


Мастер участка

Группа: Участник
Сообщений: 575



Мы тож раньше так делали. Потом стали использовать StarTeem, теперь SVN.
Георгий
Отправлено: 09.08.2005, 06:55


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



ещё CVS не плохая штука
olegenty
Отправлено: 17.08.2005, 09:16


Ветеран

Группа: Модератор
Сообщений: 2412



посмотрел на CVS — разочаровался. написать аналог, как обычно, не дошли руки. хочу в БД класть.

2 Deem — с сетевых шар корпоративные задачки запускаются, а разработка у нас по-старинке, каждый у себя. тем более, что модульно (основной запускающий модуль — EXE, остальное, т.е. функционал — DLL) пишут пока только двое, включая меня.
Gedeon
Отправлено: 17.08.2005, 11:43


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (olegenty @ 17/08/2005, 09:16)
с сетевых шар корпоративные задачки запускаются

Вот что я совершенно недопустимым считаю. Причины не обсуждаются.
Запуск у всех юзеров моих проектов всегда осуществляется с локальных дисков, при обязательной реализации автообновления с сервера вплоть до первого ехе, с dll понятно.
olegenty
Отправлено: 17.08.2005, 15:15


Ветеран

Группа: Модератор
Сообщений: 2412



2 Gedeon — вот как ты написал, так и запускаются smile.gif
olegenty
Отправлено: 26.08.2005, 09:45


Ветеран

Группа: Модератор
Сообщений: 2412



до кучи, ещё помехоустойчивость встроена:
1. Прога (EXE, после проверки и самообновления с) берёт из INI ConnectionString и пытается законектится. Если получилось — работаем
2. Оба на, угол шоу — не получилось. Лезем в INI, смотритм, где на расшаренном ресурсе ещё можно прочитать ConnectionString. Лезем. Читаем. Пытаемся законнектиться. Если получилось — работаем
3. Оба на, угол шоу — не получилось. Лезем на корпоративный сайт, запрашиваем с него строку коннекта. Пытаемся законнектиться. Если получилось — работаем.
4. Совсем плохо — нифига не получается. Вот уж тогда возникает диалог инициации строки соединения. Появился, звоним админу, спрашиваем, вводим, коннектимся.

думаю, все серверы за раз не попадают, а так — достаточно помехоустойчиво.

ну и перед загрузкой каждого DLL модуля проверяется, нет ли более свежей версии на расшаренном ресурсе. если есть — обновляемся. если нет, или шара недоступна — работаем с тем, что имеем.
AVC
Отправлено: 26.08.2005, 10:26


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Запуск у всех юзеров моих проектов всегда осуществляется с локальных дисков, при обязательной реализации автообновления с сервера.

Аналогично. За все время работы был один сбой когда сервер времени дал станциям 2027 год.
QUOTE

ну и перед загрузкой каждого DLL модуля проверяется, нет ли более свежей версии на расшаренном ресурсе.

Мне кажется это излишним, зачем тогда автообновление при старте?
А вообще посматриваю в сторону хранения частей приложения прямо в базе и обновлять с неё.

Разработка как у olegenty
>каждый у себя. тем более, что модульно
>(основной запускающий модуль — EXE, остальное,
>т.е. функционал — DLL) пишут пока только двое, включая меня.
(а второй на Delphi)

+ использование универсальных форм свело число модулей к минимуму и переместило доработку программы в область написания "скриптов" на языке сервера и хранимых на нем же.
olegenty
Отправлено: 26.08.2005, 10:43


Ветеран

Группа: Модератор
Сообщений: 2412



автообновление при запуске — это только EXE. не вижу смысла проверять весь список DLL — вот обратятся — тогда пожалуйста.
AVC
Отправлено: 26.08.2005, 11:03


Ветеран

Группа: Модератор
Сообщений: 1583



Дело вкуса. smile.gif
olegenty
Отправлено: 26.08.2005, 12:33


Ветеран

Группа: Модератор
Сообщений: 2412



а вот про обновление прямо из базы — это козырно. тогда всё, что нужно, это чтобы клиент как-то откуда-то добыл строку коннекта. т.е. это у меня как раз есть. AVC, спасибо за идею, чё-то я дал маху. В течение недели постараюсь реализовать это у себя.
AVC
Отправлено: 26.08.2005, 12:52


Ветеран

Группа: Модератор
Сообщений: 1583



Попробуй.
Я на это не иду, так как для групы удаленных станций дешевле выложить ночью на ftp а там на видимую им шару чем днем "забивать" трафик.
А вообще я начал делать (бросил за невостребованностью) три варианта обновления (Описания хранятся на сервере БД)
1. Расшареный ресурс
2. FTP
3. Сервер БД
В таблице для каждой станции — её NETBIS имя, настройки вариантов и указание порядка предпочтительности (предусмотрен вариант default (надо несколько)).
Но пока самым жизнестойким оказался вариант с шарой (для каждой станции может быть своя).
olegenty
Отправлено: 26.08.2005, 13:29


Ветеран

Группа: Модератор
Сообщений: 2412



у меня пока тоже шара. но, меня не напрягает траффик, всё происходит в пределах корпоративной сетки. а она очень жирная. в таких условиях, БД знает всё, только б туда законнектиться...
avc*
Отправлено: 26.08.2005, 13:42


Не зарегистрирован







Тогда вперед и удачи!
Deem
Отправлено: 28.11.2005, 12:51


Мастер участка

Группа: Участник
Сообщений: 327



Как бы не так.....

Народ! Кто как комплектует DLL? Ну, по разработчику, или по общей направленности, или какждому классу — своя?

И еще такая хрень с аддоном: нахожу DLL, запускаю из нее инициализирующую функцию, и передаю ей указатель на объект центральной базы данных (ну, типа, TIBDatabase*), чтобы далее все работало через нее (она уже приконекчена). Пока работает эта самая инициализирующая функция, к объекту-базе вчерез указатель доступ нормальный. Запоминаю указатель в поле объекта из DLL, чтобы далее его юзать. При попытке доступа к методам TIBDatabase из других функций/методов получаю ошибки, попадаю "не туда". Давно эта ###### случилась. Отмазался тем, что из переданного объекта TIBDatabase при инициализации вычитывал все, что касается коннекта и далее использовал TIBDatabase из DLL. Работает нормально. Однако, не то это. Хотя бы из=за того, что за дисконнектом основной базы данных надо "ручками" дисконектить все остальные, воткнутые в DLL.
VCL и RTL либы цепляются к DLL-ам и ЕХЕ-шнику в динамическом виде.
MDIChild из DLL нормально работают в главном MDI-окне из EXE.
Почему отвядает частично IBDatabase — фиг знает.

Вернуться в Аспекты и идеология профессиональной разработки ПО