Начальство против регистрации компонент
От: Dsmover  
Дата: 01.07.09 11:35
Оценка: -5
Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.
Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством
Re: Начальство против регистрации компонент
От: Demandred  
Дата: 01.07.09 11:38
Оценка: +18
Здравствуйте, Dsmover, Вы писали:

D> Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.

D> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

Твое начальство абсолютно право.
Софт пишеться , что бы заказчик был доволен, а не для того ,чтобы програмист изучал интересные ему технологии.

Меняй работу
Re: Начальство против регистрации компонент
От: iHateLogins  
Дата: 01.07.09 11:40
Оценка: 1 (1) +6 :))) :))) :))) :))) :))) :))) :))) :))) :)))
Такое впечатление, что эта мессага "шла" до сервера лет десять, не меньше

Может еще TurboVision обсудим?
Re: Начальство против регистрации компонент
От: CreatorCray  
Дата: 01.07.09 11:42
Оценка: +2
Здравствуйте, Dsmover, Вы писали:

D>Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll.

Нормальная практика. Особенно учитывая специфику фазы внедрения на различных производствах.

D>А мне бы очень хотелось использовать COM-технологии. Поработать с ней...

"Хочется использовать" и "реально необходимо" это разные понятия.
Очень вероятно что в том продукте COM нужен как собаке пятая нога.

D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

Что то мне кажется что начальство в данном случае не упрямое а опытное, и знает чем такие игрища с технологиями заканчиваются.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Начальство против регистрации компонент
От: MShura  
Дата: 01.07.09 11:45
Оценка: 7 (4)
D> Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.
D> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

В своё время я сделал так (все COM модули — inproc):


HRESULT
LoadComObject(
    IN REFCLSID rclsid,
    IN REFIID riid,
    OUT LPVOID* ppv,
    IN LPCTSTR szDefaultLibName
    )
{
  TCHAR szPath[MAX_PATH];
  LPTSTR ptr;
  HMODULE hLib;
  HRESULT (__stdcall *DllGetClassObjectMy)(  REFCLSID rclsid, REFIID riid, LPVOID * ppv );
  IClassFactory* Fact;

  if ( NULL != ppv )
    *ppv = NULL;

  if ( GetModuleFileName( NULL, szPath, ARRSIZE(szPath) )
    && NULL != (ptr = _tcsrchr( szPath, TEXT('\\') ))
    && NULL != ( _tcsncpy( ptr + 1, szDefaultLibName, ARRSIZE(szPath) - (ptr-szPath+1) ),
          hLib = LoadLibrary( szPath ) ) )
  {
    *(FARPROC*)&DllGetClassObjectMy = GetProcAddress( hLib, "DllGetClassObject" );
    if ( NULL != DllGetClassObjectMy
      && SUCCEEDED((*DllGetClassObjectMy)( rclsid, IID_IClassFactory, (void**)&Fact )) )
    {
      HRESULT hr = Fact->CreateInstance( NULL, riid, ppv );
      Fact->Release();
      if ( SUCCEEDED(hr) )
        return hr;
    }
    FreeLibrary( hLib );
  }

  //
  // Use COM
  //
  return CoCreateInstance( rclsid, NULL, CLSCTX_INPROC_SERVER, riid, ppv );
}


В результате если exe вместе с dll просто скопировали с сохранением относительных путей, то всё будет работать и без регистрации
Re: Начальство против регистрации компонент
От: ilnar Россия  
Дата: 01.07.09 11:58
Оценка: 1 (1) +1
Здравствуйте, Dsmover, Вы писали:

D> Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.

D> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

я бы тоже не разрешал.
что касается хотелось бы поработать — поздно взялись, опыт этот вам не понадобится, имхо
Re: Начальство против регистрации компонент
От: TK Лес кывт.рф
Дата: 01.07.09 12:05
Оценка:
Здравствуйте, Dsmover, Вы писали:

D> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...


Пишите под Win2000?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Начальство против регистрации компонент
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 01.07.09 12:05
Оценка: 1 (1) -1
Здравствуйте, Dsmover, Вы писали:

D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством


Эмулятор реестра? Перехватываем все обращения, потом лезем в локальную базу, смотрим там. Если не находим, то вызываем стандартную функцию.
Re[2]: Начальство против регистрации компонент
От: Dsmover  
Дата: 01.07.09 12:09
Оценка:
Здравствуйте, MShura, Вы писали:

D>> Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.

D>> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
D>> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

MS>В своё время я сделал так (все COM модули — inproc):



MS>
MS>HRESULT
MS>LoadComObject(
MS>    IN REFCLSID rclsid,
MS>    IN REFIID riid,
MS>    OUT LPVOID* ppv,
MS>    IN LPCTSTR szDefaultLibName
MS>    )
MS>{
MS>  TCHAR szPath[MAX_PATH];
MS>  LPTSTR ptr;
MS>  HMODULE hLib;
MS>  HRESULT (__stdcall *DllGetClassObjectMy)(  REFCLSID rclsid, REFIID riid, LPVOID * ppv );
MS>  IClassFactory* Fact;
................
MS>


MS>В результате если exe вместе с dll просто скопировали с сохранением относительных путей, то всё будет работать и без регистрации


Хм, очень прикольно! Но "клиент", который использует мой ActiveX написан на c#...
Re[2]: Начальство против регистрации компонент
От: Dsmover  
Дата: 01.07.09 12:11
Оценка: :))) :))) :))) :)
Здравствуйте, ilnar, Вы писали:

I>что касается хотелось бы поработать c COM — поздно взялись, опыт этот вам не понадобится, имхо


Неужели COM так устарел уже??? Мне кажется ATL, MFC, ActiveX, COM еще будут долго жить... А дотнет тормозная ненадежная с эксепшенами хрень...
Правда под дотнет у меня был опыт написания программ только под Compact Framework (ужасно медленная, непригодная для жизни вещь)
Re[2]: Начальство против регистрации компонент
От: Dsmover  
Дата: 01.07.09 12:14
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, Dsmover, Вы писали:


D>> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...


TK>Пишите под Win2000?


В принципе на заводе (куда мы внедряем наше ПО) стоят разные компьютеры. Почти везде Вынь2000, но хотелось мне бы ориентироваться и на Windows XP
Re[2]: Начальство против регистрации компонент
От: Dsmover  
Дата: 01.07.09 12:16
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, Dsmover, Вы писали:


D>> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством


M>Эмулятор реестра? Перехватываем все обращения, потом лезем в локальную базу, смотрим там. Если не находим, то вызываем стандартную функцию.


Вы имеете в виду, наверное, утилиту regsvrex? (http://www.codeproject.com/KB/winsdk/regsvrex.aspx)
Может быть есть опыт ее использования? Стоит ли на нее надеяться, что не подведет?
Re: Начальство против регистрации компонент
От: рыбак  
Дата: 01.07.09 12:27
Оценка: :)
Здравствуйте, Dsmover, Вы писали:

D> Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.

D> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

А как ты будешь разруливать ситуацию с одновременно установленными разными версиями программы?
Когда окажется что у заказчика установлено несколько версий программы, компоненты зарегены от одной, запускает он другую... будет ведь самый настоящий ад.
Re[2]: Начальство против регистрации компонент
От: Glоbus Украина  
Дата: 01.07.09 13:32
Оценка:
Здравствуйте, рыбак, Вы писали:

Р>Здравствуйте, Dsmover, Вы писали:


D>> Доброго времени суток. Итак, я работаю в небольшой одной конторке программистом уже лет пять. Всего у нас программеров человек семь. Разрабатываем мы приложения на Delphi, Microsoft Visual c++, c# и MSSQL. В основном это системы автоматизации производства, учетные системы и т.д.

D>> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...
D>> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

Р>А как ты будешь разруливать ситуацию с одновременно установленными разными версиями программы?

Р>Когда окажется что у заказчика установлено несколько версий программы, компоненты зарегены от одной, запускает он другую... будет ведь самый настоящий ад.

Пардон, мож чего не понял, но в чем собственно проблема? CLSID другой — и вперед.
Удачи тебе, браток!
Re[3]: Начальство против регистрации компонент
От: Кодт Россия  
Дата: 01.07.09 14:14
Оценка:
Здравствуйте, Glоbus, Вы писали:

Р>>А как ты будешь разруливать ситуацию с одновременно установленными разными версиями программы?

Р>>Когда окажется что у заказчика установлено несколько версий программы, компоненты зарегены от одной, запускает он другую... будет ведь самый настоящий ад.

G>Пардон, мож чего не понял, но в чем собственно проблема? CLSID другой — и вперед.


Собственно говоря, COM — это одна из первых и довольно удачных попыток разрулить dll hell.
Именно с помощью разных clsid и progid.
... << RSDN@Home 1.2.0 alpha 4 rev. 1207>>
Перекуём баги на фичи!
Re[4]: Начальство против регистрации компонент
От: TimurSPB Интернет  
Дата: 01.07.09 14:18
Оценка: -4
COM он да же под виндой как то плохо прижился. А если вдруг родина прикажет портироваться под Linux/Unix ? Начальство придерживается правильной линии.
Make flame.politics Great Again!
Re: Начальство против регистрации компонент
От: Кодт Россия  
Дата: 01.07.09 14:28
Оценка:
Здравствуйте, Dsmover, Вы писали:

D> Собственно, к моему вопросу. Наше начальство совершенно против создания компонент (COM, ActiveX). Требует чтобы разрабатываемая программа запускалась на конечном компьютере после простого копирования файлов (ведь компоненты надо регить... да еще под правами админа!). То есть, если нужны какие-то модульные приблуды — пожалуйста используйте простые dll. А мне бы очень хотелось использовать COM-технологии. Поработать с ней...

D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством

Чем начальство мотивирует такой подход к развёртыванию приложения — простым копированием?
— Приложение с самого начала задумано как портабельное?
— Горький опыт общения с тупыми пользователями?
— Необходимость быстрого развёртывания на множестве компьютеров?
— Запуск с сетевого диска?
... << RSDN@Home 1.2.0 alpha 4 rev. 1207>>
Перекуём баги на фичи!
Re: Начальство против регистрации компонент
От: tonykent  
Дата: 01.07.09 14:29
Оценка:
D> Итак, как решить мою проблему? Были ли у кого нечто подобное в жизни и как вы решали такие траблы с упрямым начальством
Если кто не знает — существует возможность использовать COM без регистрации в реестре. Для этого используются специальные манифесты. Registry-free COM
Re[2]: Начальство против регистрации компонент
От: TimurSPB Интернет  
Дата: 01.07.09 14:31
Оценка:
Здравствуйте, tonykent, Вы писали:
T>Если кто не знает — существует возможность использовать COM без регистрации в реестре. Для этого используются специальные манифесты. Registry-free COM

Это хак, или кошерный метод одобреный Microsoft?
Make flame.politics Great Again!
Re[5]: Начальство против регистрации компонент
От: Кодт Россия  
Дата: 01.07.09 14:34
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>COM он да же под виндой как то плохо прижился.


Ну не знаю... Дофига виндовских API сделано на COM, и ничего. И очень даже ничего.

TSP> А если вдруг родина прикажет портироваться под Linux/Unix ? Начальство придерживается правильной линии.


Лично писал с использованием COM (с оглядкой на DCOM) под VxWorks. Правда, через год кодинга затею с distributed похерили, и сам COM как-то оказался невостребован.
Ну и во free-threaded inproc его конвенции гораздо больше мешают, чем помогают.
... << RSDN@Home 1.2.0 alpha 4 rev. 1207>>
Перекуём баги на фичи!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.