Полностью согласен с предыдущим оратором (rtorsten) — object mappers, чаще всего, не привносят ничего хорошего. И добавляют множество проблем, если понадобится (а это в 99% случаев так) добавить какую-то логику конвертации, навскидку country в country code, true/false в 1/0, или любой dictionary lookup.
Например, после пары лет эволюции в проекте дозер мэппер большой частью состоял из custom mappers, и понять весь процесс мэппинга не представлялось возможным. При переходе на тупые и деревянные plain java mappers вида a.setField(b.getField()), любой девелопер мог поддерживать меппинги. Да, выглядит ужасно. Да, копипаста. Но очень дешевые изменения и очень, очень быстрый меппинг. И этот кусок кода в проекте лежит обособленно и не мешает. И compile-time проверки.
Любители красоты могут попробовать груви, пожертвовав быстродействием.
Plain java подход не требует навешивания аннотаций. Это может быть критично, если доменная модель, как это любят в энтерпрайзе, генерится из xsd с помощью jaxb.
Edit: и не забываем про final объекты, у которых вообще может не быть сеттеров.
Подключение на горячую, естественно, работает, при этом в доке:
— воткнуто питание (да, с доком идет отдельный адаптер питания внушительных размеров на 100 вт)
— внешний монитор
— usb клавиатура, мышь, вебкамера со встроенным микрофоном, принтер.
Док-станция идет со старшими моделями, я брал ноут на i5 + отдельно док за ~3500р.
Основная ось — arch linux, док аппаратный, все работает. DVI разъем в xrandr выглядит как HDMI2, остальные, подозреваю, так же. Использую в паре с внешним монитором с разрешением 1980x1080.
Проблем с железом не нашел. Сканер пальцев в системе определяется, софт ставить не пробовал. Интеловские драйвера для иксов работают быстро, аппаратное ускорение декодирования видео поддерживается.
По умолчанию активирован UEFI secure boot, отключается в биосе. Глюков EFI не нашел, запись для загрузки арча добавилась и используется по умолчанию.
Ноут относительно холодный, вентилятор, как пишут в интернетах, работает чаще, чем нужно.
Встроенные колонки тихие.
Использую в качестве рабочей станции дома с возможностью переноса — вполне удачно подходит.
Да, галочка «заряжать до 80%» при выставлении в windows сохраняет работоспособность, и аккумулятор именно так и заряжается. В таком режиме готов жить от батареи 5 часов.
Боковой переходник на лан — верх убожества, страх сломать очень велик. Благо есть док.
Моя ложка дегтя (сужу по проекту на существующей схеме БД):
Итак, минусы:
— Не умеет работать с датами. совсем.
— Хранимые процедуры и функции. Если возникла необходимось добро пожаловать в пользователи библиотеки EFExtensions, позволяющей выполнять голый sql.
— Неочевидные баги при смешивании в одном запросе entity sql с linq to sql или query builder methods.
— Отвратительный импорт. Во-первых, затирает все изменения, сделанные руками. Во-вторых, views из бд импортируются с проблемами — EF не может корректно указать у них первичный ключ, и в качестве оного берет все столбцы.
— Всякие мелочи, вроде остутствия правильного распознавания отношения многие ко многим в случае наличия в таблице-связке отдельного ключа (пример ID-GroupID-ProductID). Приходится заводить отдельную сущность.
— Отвратительный xml. При изменении сущности или отношения надо править его в нескольких местах.
— Сырость. Документации мало, community пока невелико.
Весомых плюсов (по сравнению с nHibernate) не нашел. Из положительного:
— Наличие отдельного gui редактора.
— Автоматическая генерация моделей. Стоит заметить, что в данном проекте эти модели не использовались за пределами DAL, чтобы была возможность перейти на другие способы получения данных из БД.
Итого, я рекомендую для проектов с существующей БД EF не использовать.
Тут еще интересные цифры.
Например, после пары лет эволюции в проекте дозер мэппер большой частью состоял из custom mappers, и понять весь процесс мэппинга не представлялось возможным. При переходе на тупые и деревянные plain java mappers вида a.setField(b.getField()), любой девелопер мог поддерживать меппинги. Да, выглядит ужасно. Да, копипаста. Но очень дешевые изменения и очень, очень быстрый меппинг. И этот кусок кода в проекте лежит обособленно и не мешает. И compile-time проверки.
Любители красоты могут попробовать груви, пожертвовав быстродействием.
Plain java подход не требует навешивания аннотаций. Это может быть критично, если доменная модель, как это любят в энтерпрайзе, генерится из xsd с помощью jaxb.
Edit: и не забываем про final объекты, у которых вообще может не быть сеттеров.
support.google.com/googleplay/contact/nexus_price
— воткнуто питание (да, с доком идет отдельный адаптер питания внушительных размеров на 100 вт)
— внешний монитор
— usb клавиатура, мышь, вебкамера со встроенным микрофоном, принтер.
Основная ось — arch linux, док аппаратный, все работает. DVI разъем в xrandr выглядит как HDMI2, остальные, подозреваю, так же. Использую в паре с внешним монитором с разрешением 1980x1080.
Проблем с железом не нашел. Сканер пальцев в системе определяется, софт ставить не пробовал. Интеловские драйвера для иксов работают быстро, аппаратное ускорение декодирования видео поддерживается.
По умолчанию активирован UEFI secure boot, отключается в биосе. Глюков EFI не нашел, запись для загрузки арча добавилась и используется по умолчанию.
Ноут относительно холодный, вентилятор, как пишут в интернетах, работает чаще, чем нужно.
Встроенные колонки тихие.
Использую в качестве рабочей станции дома с возможностью переноса — вполне удачно подходит.
Да, галочка «заряжать до 80%» при выставлении в windows сохраняет работоспособность, и аккумулятор именно так и заряжается. В таком режиме готов жить от батареи 5 часов.
Боковой переходник на лан — верх убожества, страх сломать очень велик. Благо есть док.
тыц
чтобы было понятно, почему в slf4j сделано так, как сделано.
Итак, минусы:
— Не умеет работать с датами. совсем.
— Хранимые процедуры и функции. Если возникла необходимось добро пожаловать в пользователи библиотеки EFExtensions, позволяющей выполнять голый sql.
— Неочевидные баги при смешивании в одном запросе entity sql с linq to sql или query builder methods.
— Отвратительный импорт. Во-первых, затирает все изменения, сделанные руками. Во-вторых, views из бд импортируются с проблемами — EF не может корректно указать у них первичный ключ, и в качестве оного берет все столбцы.
— Всякие мелочи, вроде остутствия правильного распознавания отношения многие ко многим в случае наличия в таблице-связке отдельного ключа (пример ID-GroupID-ProductID). Приходится заводить отдельную сущность.
— Отвратительный xml. При изменении сущности или отношения надо править его в нескольких местах.
— Сырость. Документации мало, community пока невелико.
Весомых плюсов (по сравнению с nHibernate) не нашел. Из положительного:
— Наличие отдельного gui редактора.
— Автоматическая генерация моделей. Стоит заметить, что в данном проекте эти модели не использовались за пределами DAL, чтобы была возможность перейти на другие способы получения данных из БД.
Итого, я рекомендую для проектов с существующей БД EF не использовать.