COM, COM +, DCOM, где запустить?

В Rails 5, если используется ActiveRecord:

ActiveRecord::SessionStore::Session.delete_all

или более детально:

# For example schedule this once a day`
ActiveRecord::SessionStore::Session.where(["updated_at < ?", 2.weeks.ago]).delete_all
30
задан no_ripcord 22 May 2009 в 21:45
поделиться

6 ответов

Если вы серьезно относитесь к изучению COM, «Essential COM» Дона Бокса, безусловно, абсолютно необходимо прочитать. COM может сбивать с толку, и, по моему скромному мнению, Дон Бокс - один из немногих, кто действительно «понял это».

Пример кода в «Essential COM» написан на C ++. Вы не найдете много книг, поддерживающих COM на C. Вы можете написать COM на C, но это будет очень, очень болезненным. COM оптимизирован для разработки на C ++.

Эта книга не идеальна и не «полная». Есть некоторые (конечно, немного эзотерические) области, которые пробегает книга. Например, в книге около полутора страниц «прозвищ» (я никогда не видел, чтобы трактовка прозвищ меня удовлетворяла). Я считаю эту книгу САМОЙ фундаментальной книгой.

Во-вторых, в реальной жизни вы, вероятно, захотите использовать вспомогательную библиотеку, такую ​​как ATL, вместо того, чтобы писать все связующее звено COM напрямую. Слишком много способов сделать небольшие ошибки в COM даже при базовой настройке. ATL предоставит вам хорошие шаблоны и реализует за вас скучный код. В обучении лучше использовать простой C ++.

Есть много книг об ATL, и некоторые из них вполне хороши. Я понимаю, что ATL немного изменился со времен VC ++ 6, но я не знаю об этом из первых рук: к сожалению, большая часть кода COM, с которым я работаю, навсегда привязана к вкусу C ++ в VC6 .

Убедитесь, что любая книга, которую вы получите, написана для той версии Visual Studio и / или ATL, которую вы планируете использовать.

Некоторые сведения о книгах по COM:

Обратите внимание, что существует множество книг что неправильно понимают COM, или сосредоточьтесь на неправильных вещах. Старые книги в этом отношении хуже. В некоторых из первых книг COM рассматривался как не более чем элемент, необходимый для работы OLE («Связывание и встраивание объектов», это то, что позволяет вам перетаскивать диапазон электронной таблицы в документ Word). Из-за этого многие материалы очень сбивают с толку. Потребовалось время, прежде чем люди поняли, что OLE не так уж и важен, а COM действительно важен.

К тому времени, когда Дон Бокс опубликовал «Essential COM», трещины в основе COM начали становиться очевидными. В COM нет ничего ужасно испорченного, но потребности сообщества разработчиков эволюционировали и переросли то, что COM могла бы делать без серьезной модернизации.

.NET родился из этих усилий по устранению ограничений в COM, особенно в области «типовой информации». Всего через несколько лет после публикации «Эффективного COM» внимание сообщества переключилось на .NET. Из-за этого хороший учебный материал по COM сейчас и, вероятно, останется навсегда ограниченным.

Итак, COM не сломан, и он отлично работает для вещей, для которых он используется (вот почему Explorer до сих пор его использует). Это просто уже не лучшее решение для многих проблем, которые необходимо решать сегодня.

В итоге:

Я рекомендую «Essential COM» для базовых задач. Затем выберите любую из многих хороших книг по ATL (там нет сильных предпочтений), а затем используйте другие ресурсы, такие как MSDN или, конечно же, Stack Overflow, чтобы охватить области, которые вас особенно интересуют.

Если вы ' Я предпочитаю не полагаться на ресурсы разновидности мертвых деревьев, вперед и изучите ATL из Интернета. Но некоторые книги стоит читать по старинке - и «Essential COM» - одна из них.

Удачи.

36
ответ дан 27 November 2019 в 23:44
поделиться

COM по-прежнему полезен, если вы хотите работать или расширять различные API Windows, такие как расширения оболочки, хост сценариев и т. Д.

Essential COM (Box) и ATL Внутренние органы (Rector и Sells) - отличные источники. Эффективный COM (Box и др.) Тоже подойдет.

Если вам действительно нужна полная картина COM, попробуйте получить копию огромного внутреннего OLE (Brockschmidt).

Распределенный COM (Эддон, Эддон) - это достойно на DCOM, как и Inside COM + Base Services (Eddon, Eddon) на COM +.

даже в некоторых якобы «чистых» книгах по C ++ есть биты о COM. В Imperfet C ++ Мэтью Уилсона есть некоторые полезные части, позволяющие увидеть, как он работает изнутри, а в его книге Extended STL есть пара глав о том, как адаптировать COM к коллекциям STL.

Если вы хотите узнать больше о том, как писать COM серверы, вы Мне, вероятно, придется отказаться от ATL. Вышеупомянутые внутренние компоненты ATL просто необходимы. Несмотря на свое скромное название, Beginning ATL COM также содержит некоторые полезные вещи.

Также полезно в процессе обучения противопоставить COM и .NET. Справочник по совместимости .NET и COM - большая ласточка, но в нем есть кое-что полезное. Кроме того, я бы посмотрел «Основы командной строки с общим исходным кодом», просто чтобы противопоставить эти две технологии.

HTH

3
ответ дан 27 November 2019 в 23:44
поделиться

COM , COM + и DCOM - это три совершенно разные вещи. На данный момент очень мало причин изучать COM и почти нет причин изучать DCOM. Единственная причина, по которой я могу думать, - это необходимость поддерживать или интегрировать унаследованные компоненты. COM + все еще используется, потому что он позволяет размещать компоненты вне процесса и такие приятные вещи, как управление распределенными транзакциями.

Лучший способ начать писать некоторые COM - это использовать ATL . В .NET COM + называется Enterprise Services .

Лучшая книга, которую я знаю по COM, - это Essential COM Дона Бокса и книга Тима Эвальда COM + тоже превосходна .

10
ответ дан 27 November 2019 в 23:44
поделиться

Essential COM специально предназначен для реализации или использования компонентов COM из C ++ без использования IDE, фреймворка или библиотеки.

COM тривиально использовать из VB или из Например, Delphi, которые скрывают привязку, специфичную для COM, от прикладного программиста. В C ++ вы часто используете какую-нибудь библиотеку классов, которая пытается абстрагироваться от деталей ... Essential COM расскажет вам, что это за детали (и как бы реализует при этом свою собственную библиотеку / фреймворк).

2
ответ дан 27 November 2019 в 23:44
поделиться

На самом деле, если вы хотите узнать больше о COM, Microsoft издает книгу о COM и о том, как это работает ... http: / /www.amazon.com/Inside-Microsoft-Programming-Dale-Rogerson/dp/1572313498/ref=sr_1_2?ie=UTF8&s=books&qid=1243029018&sr=8-2[12171 provided

1
ответ дан 27 November 2019 в 23:44
поделиться

Начните с «Внутри COM», затем перейдите к «Внутри DCOM» и прочтите «Essential COM». Вы получите контроль над COM. Обе книги Inside COM и Inside DCOM являются публикациями Microsoft.

3
ответ дан 27 November 2019 в 23:44
поделиться