Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внедрение крупных проектов и их организация, Delphi + Oracle 
:(
    Опции темы
DimW
Дата 9.2.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Привет всем!!!
Наверное каждый программист занимающийся программированием под какое либо СУБД, однажды за дается этим вопросом - как организовать крупный проек который бы позволил охватить множесво предметных областей предприятия (бухгалтерия, склады, кадры, производство и т.д.), и позволил легко внедрять новые решенные задачи!!! конечно же без Case-инструментария здесь не обойтись, но мало описать структуру БД. Самое главное нужно позаботиться о том как пользователи будут работать с этой "гениально построеной БД" smile и как разработчики будут прикручивать к проекту новые решения, ну или патчи старых. Моей любимой СУБД является конечно же Oracle, а средством для выявления криволапых пользователей конечно же Delphi. smile
Зная о вожможностях БД обычно хочется выжать все сполна! по этому и стоит вопрос о правельном подходе к организации проекта.

(по мере описания проблем я буду давать свои умозаключения, но т.к. опыта у меня "с гулькин нос" в решении таких задачь на Delphi, то буду презнателен если вы мне предложите что ни-ть гениальное и проверенное временем и опытом)

вчем собственно вопросы:

1) нужно иерархию проекта организовать таким образом что бы пользователю были доступны все его приложения для работы с БД;
Выглядит это примерно так, есть приложение - главный модуль проекта ну скажем с компонентом TTreeView для отображения иерархии проекта который формируется из зарание настроеной иерархической таблицы где прописаны пути к приложениям и вызываются они ну скажем winexec().
естественно это в моем понимании. Но суть не в построении а в том, что кождое приложение это отдельный процесс, а значит и новая сессия к БД! Что не есть хорошо!!! Представим что пользователь запустил из своей области иерархии 5 приложений, он становится обладателем 5 сессий к БД, которые в свою очередь порождают множество локов(взаимные блокировки объектов БД) и мешают друг другу (админы взвоют smile )!!! Еше одна явная преграда - тот кто работает с Oracle - знает что такое пакетная перемення (это переменны которая хранится все сессию и владельцем ее может быть только обладатель сессии ) и как она часто помогает в решенни многих задач!!! при таком раскладе они теряют свой смысл. что не чуть не лучше первого!!! и т.д........................... smile

2)и как же будет организована работа скадем 10 программистов что бы их действия не пересекались друг с другом, тем самым исключить объектные конфликты.

вот как бы и все поверхносные вопросы этой проблемы...
с нетерпеньем жду реплик, высказываний, предложений! smile smile

PM MAIL ICQ   Вверх
Vas
Дата 9.2.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Вот мое решение, хотя тоже в этом опыта мало и интересно услышать мнения гуру, все таки тема актуальная. smile
К основной форме прикрутить Plugins. каждый программер пишет свою длл содержащую определенную форму или несколько например 1. бухгалтерия 2. склад и т.д.

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

2. Каждый программер пишет свой отделный проект, а потом просто эти модули прикручивает к длл с плугином, компилит и копирует в папку проекта откуда они будут подгружаться в прогу.

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



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
DimW
Дата 10.2.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Vas это то что надо! просто у меня опыта нет в этом деле.... smile хотелось бы натоскаться!!!!!
простые DLL я писал - ну там строки похерить и все в этом духе, а вот как форму оформить в DLL я незнаю!!! smile
Что почитать посаветуешь???
Если есть пример простой то кинь пожалуйста.
Спасибо!!!

PM MAIL ICQ   Вверх
DimW
Дата 10.2.2006, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Вобщем прочитал я пару статей, но там описан только вызов формы из длл (и то несовсем понятно...), а вот как сунуть ее туда это для меня вопрос... если кто обладает таким источником информации, несочтите за труд - дайти ссылку!!!
-----------------------------------------------

хотелось бы услышать еще мнения по поводу организации проектов такого рода! smile
PM MAIL ICQ   Вверх
Vas
Дата 10.2.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Вот так:
Код

ibrary monplugs;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,
  Forms,
  Windows,
  PlugUnit,
  MonUnit in 'MonUnit.pas' {MontersForm}; //вот включение формы в длл



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Vas
Дата 10.2.2006, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Вот ссылка вроде неплохо написано Использование dll в Delphi, а вообще google.com рулит.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
DimW
Дата 10.2.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Короче у меня все получилось!!! smile поцепил форму к dll, на основную форму кинул OraSession и привызове dll передал его сессию в модальную форму, самого главного добился - сессия одна к БД!!!!!! smile

Vas спасибо тебе большое, ты даже не представляешь на сколько ты меня продвинул в моих иследованиях. в знак благодарности держи +, спасибо!!!!!

вот правда при закрытии формы ошибки лезут, но я думаю это дело времени... smile

думаю это наилучший способ развития корпоративных проектов.
но всетаки мнения еще будут????? или все согласны с Vas?
PM MAIL ICQ   Вверх
Vas
Дата 10.2.2006, 15:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(DimW @ 10.2.2006, 15:20 Найти цитируемый пост)

в знак благодарности держи +


Огромный THANKS smile


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
DimW
Дата 13.2.2006, 14:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Цитата(Vas @ 9.2.2006, 18:13 Найти цитируемый пост)
Вот мое решение, хотя тоже в этом опыта мало и интересно услышать мнения гуру, все таки тема актуальная.


Цитата(DimW @ 10.2.2006, 09:49 Найти цитируемый пост)
хотелось бы услышать еще мнения по поводу организации проектов такого рода! 


Поднимаю тему smile

PM MAIL ICQ   Вверх
Dimich
Дата 17.2.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 мне некогда, да и бороться за красоту кода мне тоже некода. А нет ничего более постоянного, чем временное smile
Кроме того, у нас есть люди, которые некогда писали на Oracle Forms, сейчас пишут на FoxPro и все это разношерстное «наследие» никак не хочет умереть и не умрет никогда. Хорошо хоть «заставил» всех научить свои программы одинаково обрабатывать параметры командной строки, чтобы все программы одинаково хорошо запускались из менюшки. Про менюшку можете почитать мой пост тут: http://forum.vingrad.ru/index.php?showtopi...st&p=327170
Вот и получается, что идея про dll-ки – плагины это вещь хорошая (экономят памят, сессии и т.д), но по причине более трудоемкой отладки для меня не подходят. Причина – нехватка времени. Я видел, как подобный проект построен у наших конкурентов: одна программулина (кажется на 9-м Фоксе, в которой ведется абсолютно все и ввод информации и ее обработка и вся отчетность тоже оттуда печатается). Вот только тамошним программерам ставятся задача и пару месяцев на ее реализацию (в зависимости от сложности). Их никто не торопит. И как результат у них рынок составляет 30% города, а у нас 70 % + вся область и постоянно увеличивается путем перехода поставщиков от них к нам. У нас лучше, быстрее и качественней. Но к сожалению это только снаружи так видно. Если капнуть внутри, то такой гемор творится…..жуть! Хотя может быть я слишком самокритичен?
Вот я и считаю, что делать exe-шку для очень мелкой задачи (например правки какого-то поля в таблице) в большинстве случаев смысла не имеет – не рационально. Надо стараться разделить (сгруппировать) задачи проекта по темам (направлениям) и пытаться делать интегрированные системы. Вот к этому стремлюсь я.
Хотя интересно было бы узнать из опыта людей, как им удается организовывать свои проекты?

--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
<Spawn>
Дата 17.2.2006, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата

2)и как же будет организована работа скадем 10 программистов что бы их действия не пересекались друг с другом, тем самым исключить объектные конфликты.


Для этого используют системы контроля версий кода, например VSS - Visual Source Safe от Microsoft (Найти можно в Visual Studio).


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Dimich
Дата 17.2.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Цитата(<Spawn> @ 17.2.2006, 14:24 Найти цитируемый пост)
Для этого используют системы контроля версий кода, например VSS - Visual Source Safe от Microsoft (Найти можно в Visual Studio).

И как этот VSS использовать если я пишу на Delphi и PL/SQL, еще однин чел на FoxPro 7, еще один на FoxPro 6 и Oracle Forms, другой на C++ и Java а другая пытается писать на Delphi, но не признает ни процедур ни функций, все переменные исключительно variant, очень этим гордится, но не умеет скопировать файл по сети, хотя достаточно грамотно может объяснить что такое TCP/IP и кто его придумал, а если случайно нажала Scroll Lock, то станет перезагружать компьютер.
Так что это не для нашей деревни, к сожалению.

З.Ы. К тому же мы если и работаем над одним проектом вместе, то делимся так: ты рисуешь интерфейсы юзера, а ты серверную математику, я пишу к примеру сетевые коммуникации или т.п.
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
DimW
Дата 18.2.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Dimich, спасибо!!!

<Spawn>, спасибо!!!

Кто еще хочет высказаться? smile smile
PM MAIL ICQ   Вверх
Guedda
Дата 18.2.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Очень важно, чтобы крупные проекты состояли из различных модулей. Модульность - вот в чем сила. Модульность достигается путем присоединения различных plug-ins, RTL, DLL and so on.
Главной задачей ведущего программиста проекта - слинковать все и чтобы все это работало.
Также советую применять интерфейсы, модели, виды и фреймы, так как они облегчают задачу.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
ARlex
Дата 20.2.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.11.2005

Репутация: нет
Всего: нет



Цитата(DimW @ 10.2.2006,  15:20)
Короче у меня все получилось!!!  smile  поцепил форму к dll, на основную форму кинул OraSession и привызове dll передал его сессию в модальную форму, самого главного добился - сессия одна к БД!!!!!!  smile 

Как передать эту сесию в dll?
Никто не приведет пример?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.