![]() |
|
![]() ![]() ![]() |
|
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
Привет всем!!!
Наверное каждый программист занимающийся программированием под какое либо СУБД, однажды за дается этим вопросом - как организовать крупный проек который бы позволил охватить множесво предметных областей предприятия (бухгалтерия, склады, кадры, производство и т.д.), и позволил легко внедрять новые решенные задачи!!! конечно же без Case-инструментария здесь не обойтись, но мало описать структуру БД. Самое главное нужно позаботиться о том как пользователи будут работать с этой "гениально построеной БД" ![]() ![]() Зная о вожможностях БД обычно хочется выжать все сполна! по этому и стоит вопрос о правельном подходе к организации проекта. (по мере описания проблем я буду давать свои умозаключения, но т.к. опыта у меня "с гулькин нос" в решении таких задачь на Delphi, то буду презнателен если вы мне предложите что ни-ть гениальное и проверенное временем и опытом) вчем собственно вопросы: 1) нужно иерархию проекта организовать таким образом что бы пользователю были доступны все его приложения для работы с БД; Выглядит это примерно так, есть приложение - главный модуль проекта ну скажем с компонентом TTreeView для отображения иерархии проекта который формируется из зарание настроеной иерархической таблицы где прописаны пути к приложениям и вызываются они ну скажем winexec(). естественно это в моем понимании. Но суть не в построении а в том, что кождое приложение это отдельный процесс, а значит и новая сессия к БД! Что не есть хорошо!!! Представим что пользователь запустил из своей области иерархии 5 приложений, он становится обладателем 5 сессий к БД, которые в свою очередь порождают множество локов(взаимные блокировки объектов БД) и мешают друг другу (админы взвоют ![]() ![]() 2)и как же будет организована работа скадем 10 программистов что бы их действия не пересекались друг с другом, тем самым исключить объектные конфликты. вот как бы и все поверхносные вопросы этой проблемы... с нетерпеньем жду реплик, высказываний, предложений! ![]() ![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Вот мое решение, хотя тоже в этом опыта мало и интересно услышать мнения гуру, все таки тема актуальная.
![]() К основной форме прикрутить Plugins. каждый программер пишет свою длл содержащую определенную форму или несколько например 1. бухгалтерия 2. склад и т.д. 1. Первый плюс этого подхода все будет работать в одной сессии, потому что в каждую длл просто передается указатель на твою OraSession и работаешь. 2. Каждый программер пишет свой отделный проект, а потом просто эти модули прикручивает к длл с плугином, компилит и копирует в папку проекта откуда они будут подгружаться в прогу. Имхо, и с обновлением проекта в этом случае минимум хлопот, просто помещаем созданные длл в БД, и при загрузке проги проверяем не обновились ли они, если да просто копируем на винт и все. -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
Vas это то что надо! просто у меня опыта нет в этом деле....
![]() простые DLL я писал - ну там строки похерить и все в этом духе, а вот как форму оформить в DLL я незнаю!!! ![]() Что почитать посаветуешь??? Если есть пример простой то кинь пожалуйста. Спасибо!!! |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
Вобщем прочитал я пару статей, но там описан только вызов формы из длл (и то несовсем понятно...), а вот как сунуть ее туда это для меня вопрос... если кто обладает таким источником информации, несочтите за труд - дайти ссылку!!!
----------------------------------------------- хотелось бы услышать еще мнения по поводу организации проектов такого рода! ![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Вот так:
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Вот ссылка вроде неплохо написано Использование dll в Delphi, а вообще google.com рулит.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
Короче у меня все получилось!!!
![]() ![]() Vas спасибо тебе большое, ты даже не представляешь на сколько ты меня продвинул в моих иследованиях. в знак благодарности держи +, спасибо!!!!! вот правда при закрытии формы ошибки лезут, но я думаю это дело времени... ![]() думаю это наилучший способ развития корпоративных проектов. но всетаки мнения еще будут????? или все согласны с Vas? |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
||||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Интересную тему подняли, молодцы!
Про свою базу я рассказывал уже. Не спорю, что в идеале и мне хотелось бы иметь от одного юзера одну сессию оракла. Но этого трудно достичь, по крайней мере для меня. У каждого юзера имеется как минимум две программы (1-программа ведения, корректировки и прочего учета документов; 2-программа оперативной обработки документов). Функции этих прог достаточно разнятся, поэтому в одну объединять смысла нет – монстр получится и удобство пострадает. Оформить их как dll-ки одного проекта тоже трудно скорее из-за одной большой проблемы №1: Это наверное у всех, но специфика моей работы в большой оперативности: Приходит поставщик 17 февраля, и говорит: с 1 января 2006 года, нужно вести учет моих документов не так, как до этого, а совсем иначе, поэтому учтите это в своих программах, чтобы выдать мне правильные итоги месяца. Но еще я через 40 минут должен быть на приеме у главы города и мне нужны все отчеты за январь-февраль (с 1.01.2006 по 16.02.2006) с учетом вышеизложенных изменений. Так что времени у меня не более 20 минут на правку структуры БД, пересчета и конвертации информации, модификации отчетов и программ. Причем это надо сделать так, чтобы этого практически не заметили ни около 170 человек операторов и кассиров в городе и по области в 11-ти филиалах, где за простой рабочего места более 5 минут (из-за того, что я меняю структуру и программу) меня запросто лишат премии на 50% за компанию с теми, кто простаивал. Поэтому отлаживать dll мне некогда, да и бороться за красоту кода мне тоже некода. А нет ничего более постоянного, чем временное ![]() Кроме того, у нас есть люди, которые некогда писали на Oracle Forms, сейчас пишут на FoxPro и все это разношерстное «наследие» никак не хочет умереть и не умрет никогда. Хорошо хоть «заставил» всех научить свои программы одинаково обрабатывать параметры командной строки, чтобы все программы одинаково хорошо запускались из менюшки. Про менюшку можете почитать мой пост тут: http://forum.vingrad.ru/index.php?showtopi...st&p=327170 Вот и получается, что идея про dll-ки – плагины это вещь хорошая (экономят памят, сессии и т.д), но по причине более трудоемкой отладки для меня не подходят. Причина – нехватка времени. Я видел, как подобный проект построен у наших конкурентов: одна программулина (кажется на 9-м Фоксе, в которой ведется абсолютно все и ввод информации и ее обработка и вся отчетность тоже оттуда печатается). Вот только тамошним программерам ставятся задача и пару месяцев на ее реализацию (в зависимости от сложности). Их никто не торопит. И как результат у них рынок составляет 30% города, а у нас 70 % + вся область и постоянно увеличивается путем перехода поставщиков от них к нам. У нас лучше, быстрее и качественней. Но к сожалению это только снаружи так видно. Если капнуть внутри, то такой гемор творится…..жуть! Хотя может быть я слишком самокритичен? Вот я и считаю, что делать exe-шку для очень мелкой задачи (например правки какого-то поля в таблице) в большинстве случаев смысла не имеет – не рационально. Надо стараться разделить (сгруппировать) задачи проекта по темам (направлениям) и пытаться делать интегрированные системы. Вот к этому стремлюсь я. Хотя интересно было бы узнать из опыта людей, как им удается организовывать свои проекты? --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 2 Всего: 64 |
Для этого используют системы контроля версий кода, например VSS - Visual Source Safe от Microsoft (Найти можно в Visual Studio). -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
И как этот VSS использовать если я пишу на Delphi и PL/SQL, еще однин чел на FoxPro 7, еще один на FoxPro 6 и Oracle Forms, другой на C++ и Java а другая пытается писать на Delphi, но не признает ни процедур ни функций, все переменные исключительно variant, очень этим гордится, но не умеет скопировать файл по сети, хотя достаточно грамотно может объяснить что такое TCP/IP и кто его придумал, а если случайно нажала Scroll Lock, то станет перезагружать компьютер. Так что это не для нашей деревни, к сожалению. З.Ы. К тому же мы если и работаем над одним проектом вместе, то делимся так: ты рисуешь интерфейсы юзера, а ты серверную математику, я пишу к примеру сетевые коммуникации или т.п. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
Dimich, спасибо!!!
<Spawn>, спасибо!!! Кто еще хочет высказаться? ![]() ![]() |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: нет Всего: 78 |
Очень важно, чтобы крупные проекты состояли из различных модулей. Модульность - вот в чем сила. Модульность достигается путем присоединения различных plug-ins, RTL, DLL and so on.
Главной задачей ведущего программиста проекта - слинковать все и чтобы все это работало. Также советую применять интерфейсы, модели, виды и фреймы, так как они облегчают задачу. -------------------- Ll 2 |
|||
|
||||
ARlex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 7.11.2005 Репутация: нет Всего: нет |
Как передать эту сесию в dll? Никто не приведет пример? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |