Что лучший способ состоит в том, чтобы сохранить мой POJOs в Американского зайца JCR?

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

Создание пакетов NuGet все еще стоит, если вы считаете, что библиотеки, которые вы используете в своем решении, могут нуждаться в использовании другими в дискретных кодовых базах, но NuGet не добавляет много (если таковые имеются) значения внутри решения. [ 111]

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

Мэтт Купер ссылался на пост в блоге о GitVersion выше. Это отличный способ автоматически генерировать номера версий на основе исходного кода, и я настоятельно рекомендую его (я часто использую опцию Mainline).

10
задан Chinnery 16 December 2008 в 06:00
поделиться

2 ответа

Другая альтернатива должна полностью пропустить платформу OCM и просто использовать javax.jcr.Node как сам очень гибкий ДАО. Фундаментальная причина, почему платформы OCM существуют, состоит в том, потому что с RDBMS Вам нужно отображение от объектов до реляционной модели. С JCR, который уже очень объектно-ориентирован (узел ~ = объект), не стало этой базовой причины. То, что оставляют, - то, что с ДАО можно ограничить то, к чему программисты могут получить доступ в их коде (включая справку автозавершения). Но этот подход действительно не усиливает понятие JCR, что означает и гибкое программирование без схем. Используя API JCR непосредственно в Вашем коде лучший способ следовать за тем понятием.

Предположите, что Вы хотите добавить новое свойство к существующему узлу/объекту позже в сроке действия Вашего приложения - с платформой OCM, необходимо изменить его также и удостовериться, что это все еще работает правильно. С прямым доступом к узлам это - просто единственная точка изменения. Я знаю, это - хороший способ получить проблемы с опечатками в, например, именами свойства; но этот страх действительно не поддерживается действительностью, так как Вы в большинстве случаев очень быстро заметите опечатки или несоответствие именам при тестировании приложения. Хорошее решение состоит в том, чтобы использовать строковые константы для общего узла или имен свойства, как раз когда часть Ваших API при представлении API JCR через них. Это все еще дает Вам гибкость для быстрого добавления новых свойств, не имея необходимость принимать уровни OCM.

Для того, чтобы иметь некоторые ограничения на то, что позволяется или что обязательно (т.е. "полусхема") можно использовать типы узлов и mixins (так как JCR 2.0 можно также изменить тип узла для существующего содержания): таким образом Вы можете обработать это полностью на уровне репозитория и не должны заботиться о вводе и ограничениях в Вашем коде приложения - кроме ловли исключений ;-)

Но, конечно, этот выбор зависит от Ваших требований и персональных предпочтений.

15
ответ дан 3 December 2019 в 19:36
поделиться

Вы могли бы хотеть взглянуть на Американского зайца OCM, который жив и ударяет. Конечно, иначе должен вручную сериализировать/десериализовать POJOs. Для этого существует много различных вариантов. Вопрос состоит в том, должны ли Вы исправить схему для запросов объектов в JCR. Если Вы просто хотите сериализировать в XML затем, XStream является очень безболезненным способом сделать так. Если Вам нужно больше, исправляют схему существует также Между от Apache палата общин.

2
ответ дан 3 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: