Разница между ref и out заключается не в CLR, а в самом языке C #. Ref и Out отличаются тем, что «компилятору требуется разное поведение» для каждого из них. Перегрузка метода также не допускается во время компиляции.
Как вы можете видеть из кода, единственное изменение - это адресная ссылка именно этой строки (если вы установите значение 10, это будет равно 10).
IL_0002: ldc.i4.s 20
Да, OSGi только имеет дело с пакетами и сервисами, работающими на том же VM. Однако нужно отметить, что это - отличная функция OSGi, что это упрощает запуск нескольких приложений (управляемым способом и совместным использованием общих модулей) на той же JVM вообще.
Когда дело доходит до доступа к сервисам вне клиентов JVM в настоящее время нет никакого стандартизированного решения. Paremus Infiniflow и полученный проект с открытым исходным кодом использование Newton подход SCA. Предстоящие 4,2 выпуска спецификаций OSGi обратятся к одной стороне проблемы, а именно, как использовать универсальное программное обеспечение распределения таким способом, которым это может привести удаленные сервисы в JVM клиента.
Поскольку кто-то упомянул R-OSGi, этот подход также имеет дело с другой стороной проблемы, будучи, как управлять зависимостями между распределенными платформами OSGi. Так как R-OSGi не является универсальным программным обеспечением распределения, но явно занимается проблемами жизненного цикла и управлением зависимостью пакетами OSGi.
Насколько я знаю, OSGi не решает эту проблему из поля. Существуют OSGi-пакеты, например, Удаленные OSGi, которые позволяют программисту распределять сервисы через сеть.
Еще нет, я думаю, что это работается на для следующего выпуска.
Но некоторые компании уже реализовали распределенный osgi. Один я знаю, Infiniflow Paremus (http://www.paremus.com/products/products.html). В linkedin они также работают над этим.Более подробная информация: Создание архитектуры следующего поколения Linkedin с osgi и здесь: Матовый raible: здание linkedin архитектура следующего поколения
Вот сводка изменений для OSGI 4.2: Некоторые мысли о проекте OSGi R4.2, существует раздел по RFC 119, имеющему дело с распределенным OSGi.
AFAIK, пакеты работают в той же JVM, но не загружаются с помощью того же загрузчика класса (это, почему можно использовать две различных версии того же пакета одновременно).
Для взаимодействия с компонентами в другой JVM необходимо использовать сетевой протокол, такой как rmi.
@Patriarch24
Принятый ответ на этот вопрос, казалось бы, указал бы иначе (если я не неправильно читаю его). Кроме того, взятый от FAQ:
Платформа услуг OSGi обеспечивает функции для изменения состава динамично на устройстве множества сетей, не требуя перезапуска
(Акцент мое собственное). Хотя в том же FAQ это описывает OSGi как в - VM.
Почему я так смущен этим? Почему не ясен такой основной вопрос о старой десятилетием технологии?
Союз OSGi работает над стандартом для распределенного OSGi:
http://www.osgi.org/download/osgi-4.2-early-draft2.pdf
Даже существует ранняя реализация Apache этого нового стандарта:
Исходная проблема OSGI была более связана с распределением кода (и затем конфигурация пакета), чем к распределению выполнения.
Люди, смотрящие на распределенные компоненты, скорее смотрят на SCA