Re[30]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.06.13 14:01
Оценка:
Здравствуйте, Serginio1, Вы писали:

AVK>>Так и такое есть.

S> Почему тогда такой сериализации нет вместе с XML и Бинарной?

А зачем вместе с XML и бинарной?
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[31]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 17.06.13 14:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>Так и такое есть.

S>> Почему тогда такой сериализации нет вместе с XML и Бинарной?

AVK>А зачем вместе с XML и бинарной?

Я так понимаю, что сериализация объектов и доступ к приватным полям должен накладывать ограничения и доступ может быть ограничен или нужно самому выстраивать доступ через рефлексию.
Такие механизмы можно встраивать в систему. Вплоть до кодогенерации кода чтения и записи.
и солнце б утром не вставало, когда бы не было меня
Re[32]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.06.13 14:29
Оценка:
Здравствуйте, Serginio1, Вы писали:

AVK>>А зачем вместе с XML и бинарной?

S>Я так понимаю, что сериализация объектов и доступ к приватным полям должен накладывать ограничения и доступ может быть ограничен или нужно самому выстраивать доступ через рефлексию.

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

S>Такие механизмы можно встраивать в систему.


В какую систему и зачем?

S> Вплоть до кодогенерации кода чтения и записи.


Для кодогенерации ничего в систему встраивать не надо.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[33]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 17.06.13 14:57
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>А зачем вместе с XML и бинарной?

S>>Я так понимаю, что сериализация объектов и доступ к приватным полям должен накладывать ограничения и доступ может быть ограничен или нужно самому выстраивать доступ через рефлексию.

AVK>Долго обсуждали то, как плохо приватные поля учитывать без сериализации, и пришли опять к этому.

А как от них отказаться, если гетеры и сетеры могут зависеть не от поля, а от набора полей. Плохо это или хорошо.

S>>Такие механизмы можно встраивать в систему.


AVK>В какую систему и зачем?


S>> Вплоть до кодогенерации кода чтения и записи.


AVK>Для кодогенерации ничего в систему встраивать не надо.

Вот смотрю я на BF. Там конечно черт ногу сломит. Но имя System.Runtime.Serialization.Formatters.Binary.BinaryFormatter как бы намекает на рантайм. Но вот этот BF должен быть не в стрим а в БД.
Мне на самом деле не понятно, что такого зашитого механизма нет. Хотя он очевиден.
и солнце б утром не вставало, когда бы не было меня
Re[34]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.06.13 15:09
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> А как от них отказаться


Есть разные варианты.

S>, если гетеры и сетеры могут зависеть не от поля, а от набора полей.


Зачем в DTO геттеры и сеттеры, зависящие от нескольких полей?

AVK>>Для кодогенерации ничего в систему встраивать не надо.

S> Вот смотрю я на BF. Там конечно черт ногу сломит. Но имя System.Runtime.Serialization.Formatters.Binary.BinaryFormatter как бы намекает на рантайм.

BF использует рефлекшен, это очевидно. А вот XmlSerializer, DataContractSerializer, linq2db используют кодогенерацию.

S> Но вот этот BF должен быть не в стрим а в БД. Мне на самом деле не понятно, что такого зашитого механизма нет.


Есть. Entity Framework называется.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[35]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 06:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:



AVK>BF использует рефлекшен, это очевидно. А вот XmlSerializer, DataContractSerializer, linq2db используют кодогенерацию.

Потому, что там все элементарно со свойствами. Намного сложнее, когда есть приватные поля и иерархия.

S>> Но вот этот BF должен быть не в стрим а в БД. Мне на самом деле не понятно, что такого зашитого механизма нет.


AVK>Есть. Entity Framework называется.

И какую встроеную БД они используют? Как легко можно воспользоваться?
Хотелось бы так же как и BF
и солнце б утром не вставало, когда бы не было меня
Re[36]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 08:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

AVK>>BF использует рефлекшен, это очевидно. А вот XmlSerializer, DataContractSerializer, linq2db используют кодогенерацию.

S> Потому, что там все элементарно со свойствами.

Нет, не потому.

S> Намного сложнее, когда есть приватные поля и иерархия.


Они все в той или иной мере понимают иерархию, а приватные поля в сериализации, которой важен формат, не нужны.

AVK>>Есть. Entity Framework называется.

S> И какую встроеную БД они используют?

Любую, для которой есть EF ADO.NET провайдер. Вот списочек таких провайдеров — http://msdn.microsoft.com/en-us/data/dd363565.aspx. Из встроенных там sqlite и fb embedded.
Плюс МСный вариант — SQL CE.

S> Как легко можно воспользоваться?


Легко.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[37]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 09:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Любую, для которой есть EF ADO.NET провайдер. Вот списочек таких провайдеров — http://msdn.microsoft.com/en-us/data/dd363565.aspx. Из встроенных там sqlite и fb embedded.

AVK>Плюс МСный вариант — SQL CE.
SQL CE это супер навороченный вариант для целей сериализации. Это стрельба из пушки по воробьям. Там не надо индексов, ссылки это номер позиция в Таблице, Массив ввиде двух таблиц ппервой ссылка на первый элемент и количество, тоже касается и строк. Так как не надо удалять сама БД элементарная.
S>> Как легко можно воспользоваться?

AVK>Легко.

Можно примерчик?
и солнце б утром не вставало, когда бы не было меня
Re[38]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 09:16
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Там не надо индексов


Если не надо индексов и удаления, то и БД не нужна. Совсем.

AVK>>Легко.

S> Можно примерчик?

http://bit.ly/11l02Ez
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[39]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 09:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>>Там не надо индексов


AVK>Если не надо индексов и удаления, то и БД не нужна. Совсем.

А как ты будешь хранить таблицы? Вся прелесть БД, что типы сгруппированы по таблицам и не нужно при записи указывать тип.
Но для сериализации десериализации нужны дополнительные данные в памяти (при сериализации это Хэш таблицы по типам хранящие объект и номер записи в таблице) при десериализации просто массив хранящий ссылку на объект. Все элементарно. При этом можно сравнивать текущую версию с сериализованной версией. Это все лучшее из XML и бинарной сериализации.
AVK>>>Легко.
S>> Можно примерчик?

AVK>http://bit.ly/11l02Ez

Угу это так же элементарно как BF. Нужен полный аналог BF, только внутри пишется не последовательно, а раскладывается по таблицам.
и солнце б утром не вставало, когда бы не было меня
Re[40]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 09:44
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> А как ты будешь хранить таблицы?


В файле.

S> Вся прелесть БД, что типы сгруппированы по таблицам


Прелесть БД в наличии индексов и поиска по ним, а так же возможности модификации отдельных записей, а не перезаписи графа целиком. Для просто структурированного решения есть много всяких вариантов, например XML.

AVK>>http://bit.ly/11l02Ez

S> Угу это так же элементарно как BF. Нужен полный аналог BF

Пишется на коленке за 10 минут.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[41]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 09:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>> А как ты будешь хранить таблицы?


AVK>В файле.


S>> Вся прелесть БД, что типы сгруппированы по таблицам


AVK>Прелесть БД в наличии индексов и поиска по ним, а так же возможности модификации отдельных записей, а не перезаписи графа целиком. Для просто структурированного решения есть много всяких вариантов, например XML.

В котором пишется слишком много лишних букв. А зачем нужна модификация при сериализации? Я уверяю, что сериализация в Таблицы намного эффективнее по скорости записи и чтения чем из XML и при этом будет значительно меньше по размеру.
AVK>>>http://bit.ly/11l02Ez
S>> Угу это так же элементарно как BF. Нужен полный аналог BF

AVK>Пишется на коленке за 10 минут.

А зачем тратить эти 10 минут? C BF не тратится ни ничего лишнего. Все из каропки.
и солнце б утром не вставало, когда бы не было меня
Re[42]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 11:15
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> В котором пишется слишком много лишних букв.


http://en.wikipedia.org/wiki/Protocol_Buffers
В БД, кстати, тоже будет "много лишних букв", потому что формат хранения затачивается под масштабные модификации и минимизацию фрагментации в процессе.

S> А зачем нужна модификация при сериализации?


Если не нужна, то и БД тоже не нужна.

S> Я уверяю, что сериализация в Таблицы намного эффективнее по скорости записи и чтения чем из XML


Ты не уверяй, ты проверь.

S> и при этом будет значительно меньше по размеру.


Это тоже проверь

AVK>>Пишется на коленке за 10 минут.

S>А зачем тратить эти 10 минут?

Затем, что задача сериализации графа объектов в БД одним разом не самая встречающаяся. Вот скажи, можешь ты некоторое количество юзкейсов описать для нее, раз так агитируешь за универсальный сериализатор?
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[43]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 11:45
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>> В котором пишется слишком много лишних букв.


AVK>http://en.wikipedia.org/wiki/Protocol_Buffers

AVK>В БД, кстати, тоже будет "много лишних букв", потому что формат хранения затачивается под масштабные модификации и минимизацию фрагментации в процессе.

S>> А зачем нужна модификация при сериализации?


AVK>Если не нужна, то и БД тоже не нужна.

БД это набор Таблиц, в том числе и таблицы описания типов. Смысл такой сериализации когда сериализуется массив.

AVK>>>Пишется на коленке за 10 минут.

S>>А зачем тратить эти 10 минут?

AVK>Затем, что задача сериализации графа объектов в БД одним разом не самая встречающаяся. Вот скажи, можешь ты некоторое количество юзкейсов описать для нее, раз так агитируешь за универсальный сериализатор?

Например для передачи данных между приложениями. В том числе например между сервером и клиентом. Например есть мобильное приложение и сервер. Для сохранения состояния для аварийного восстановления или окончания работы
Для обмена между конфигурациями. Там правда нет ссылок, так как ключи в полях. Это всяко лучше чем текстовые файлы и XML. При этом можно использовать в SQL вместо булков.
и солнце б утром не вставало, когда бы не было меня
Re[44]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 11:56
Оценка:
Здравствуйте, Serginio1, Вы писали:

AVK>>Если не нужна, то и БД тоже не нужна.

S> БД это набор Таблиц, в том числе и таблицы описания типов.

А XML — набор тегов. Дальше что?

S> Смысл такой сериализации когда сериализуется массив.


Ты сам то понял что сказал?

AVK>>Затем, что задача сериализации графа объектов в БД одним разом не самая встречающаяся. Вот скажи, можешь ты некоторое количество юзкейсов описать для нее, раз так агитируешь за универсальный сериализатор?

S> Например для передачи данных между приложениями.

БД для передачи данных между приложениями? Жоско. А как это должно выглядеть? Скидываем граф объектов в БД, потом файл с БД передаем по сети?

S>Для обмена между конфигурациями.


Каких таких конфигураций? 1С что ли? При чем тут тогда дотнет?

S> Там правда нет ссылок, так как ключи в полях.


Ключи есть а индексов нет?

S> Это всяко лучше чем текстовые файлы и XML.


Чем лучше?

S> При этом можно использовать в SQL вместо булков.


... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[45]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 12:14
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>Если не нужна, то и БД тоже не нужна.

S>> БД это набор Таблиц, в том числе и таблицы описания типов.

AVK>А XML — набор тегов. Дальше что?

То есть БД на XML это по твоему нормально?

S>> Смысл такой сериализации когда сериализуется массив.


AVK> Ты сам то понял что сказал?

Наборы данных. Так пойдет?

AVK>>>Затем, что задача сериализации графа объектов в БД одним разом не самая встречающаяся. Вот скажи, можешь ты некоторое количество юзкейсов описать для нее, раз так агитируешь за универсальный сериализатор?

S>> Например для передачи данных между приложениями.

AVK>БД для передачи данных между приложениями? Жоско. А как это должно выглядеть? Скидываем граф объектов в БД, потом файл с БД передаем по сети?

Да а в чем сложность? При этом обмен через MXL с сотнями мегабайт это нормально?
S>>Для обмена между конфигурациями.

AVK>Каких таких конфигураций? 1С что ли? При чем тут тогда дотнет?

Ну я часто применяю дот net и в 1С. От этого задачи обмена между различными базами не стала

S>> Там правда нет ссылок, так как ключи в полях.


AVK>Ключи есть а индексов нет?

А зачем индексы для переноса. Они нужны в целевой БД. В том же XML никаких индексов нет.

S>> Это всяко лучше чем текстовые файлы и XML.


AVK>Чем лучше?

Ну вопервых есть описание полей. Для текстов нужно для этого еще файл с описанием полей и кроме одной таблицы в одном файле не передашь. Про XML это объёмы.
S>> При этом можно использовать в SQL вместо булков.

AVK>

bulk insert
Можно на основании такой БД, создавать временные таблицы, создавать индексы и применять Merge.
и солнце б утром не вставало, когда бы не было меня
Re[45]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 12:21
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Такая сериализация при определенных условиях будет значительно эффективнее чем XML или JSON.
А когда больше возможностей легче выбрать оптимальный путь решения задачи.
и солнце б утром не вставало, когда бы не было меня
Re[46]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 12:35
Оценка:
Здравствуйте, Serginio1, Вы писали:

AVK>>А XML — набор тегов. Дальше что?

S> То есть БД на XML это по твоему нормально?

БД — нет, способ хранения и передачи струтурированных неизменяемых данных — да.

S>>> Смысл такой сериализации когда сериализуется массив.

AVK>> Ты сам то понял что сказал?
S> Наборы данных. Так пойдет?

Нет. Смысл фразы все равно непонятен.

AVK>>БД для передачи данных между приложениями? Жоско. А как это должно выглядеть? Скидываем граф объектов в БД, потом файл с БД передаем по сети?

S> Да а в чем сложность?

Т.е. то, что для передачи типичной посылки в сотню байт придется гонять десятки и сотни килобайт минимальной БД, и на каждую посылку поднимать коннект к новой БД не из пула тебя не пугает, а 30-40% оверхеда по объему и копейки по процессору у XML это ужас-ужас?

S> При этом обмен через MXL с сотнями мегабайт это нормально?


Нормально, если в DOM весь XML не грузить (XMLSerializer, если что, не грузит). А еще лучше через Protobuf или его аналоги.

AVK>>Каких таких конфигураций? 1С что ли? При чем тут тогда дотнет?

S> Ну я часто применяю дот net и в 1С. От этого задачи обмена между различными базами не стала

И как ты БД в 1С открывать будешь? Через ADO?

AVK>>Ключи есть а индексов нет?

S> А зачем индексы для переноса.

Для переноса — низачем. И БД тоже не нужна.

S>>> Это всяко лучше чем текстовые файлы и XML.

AVK>>Чем лучше?
S> Ну вопервых есть описание полей.

Какое такое описание полей и чем оно лучше XSD?

S> Для текстов нужно для этого еще файл с описанием полей


Зачем, если формат обмена документирован? Или передавать известные обеим сторонам метаданные в каждой посылке это такой метод эффективного программирования?

S> и кроме одной таблицы в одном файле не передашь.


Это еще почему?

S> Про XML это объёмы.


Еще раз — БД это тоже объемы, потому что БД под совершенно другой сценарий заточены.

S>>> При этом можно использовать в SQL вместо булков.

AVK>>
S>bulk insert

Что с ним?

S> Можно на основании такой БД, создавать временные таблицы, создавать индексы и применять Merge.


Зачем?
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[46]: AndrewVK поделись сакральным знанием
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.06.13 12:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Такая сериализация при определенных условиях будет значительно эффективнее чем XML или JSON.


При каких условиях?
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[47]: AndrewVK поделись сакральным знанием
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.06.13 12:55
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>А XML — набор тегов. Дальше что?

S>> То есть БД на XML это по твоему нормально?

AVK>БД — нет, способ хранения и передачи струтурированных неизменяемых данных — да.


S>>>> Смысл такой сериализации когда сериализуется массив.

AVK>>> Ты сам то понял что сказал?
S>> Наборы данных. Так пойдет?

AVK>Нет. Смысл фразы все равно непонятен.

Например Запрос или результат линка.

AVK>>>БД для передачи данных между приложениями? Жоско. А как это должно выглядеть? Скидываем граф объектов в БД, потом файл с БД передаем по сети?

S>> Да а в чем сложность?

AVK>Т.е. то, что для передачи типичной посылки в сотню байт придется гонять десятки и сотни килобайт минимальной БД, и на каждую посылку поднимать коннект к новой БД не из пула тебя не пугает, а 30-40% оверхеда по объему и копейки по процессору у XML это ужас-ужас?

Моя минимальная БД будет занимать не намного места. Размер страницы может варьироваться. Да и предначзначена такая БД не для передачи 2 трех строк. А например тысяч.

S>> При этом обмен через MXL с сотнями мегабайт это нормально?


AVK>Нормально, если в DOM весь XML не грузить (XMLSerializer, если что, не грузит). А еще лучше через Protobuf или его аналоги.

А зачем лишние мегабайты таскать?

AVK>>>Каких таких конфигураций? 1С что ли? При чем тут тогда дотнет?

S>> Ну я часто применяю дот net и в 1С. От этого задачи обмена между различными базами не стала

AVK>И как ты БД в 1С открывать будешь? Через ADO?

Да. в 7.7 есть удобный инструмент 1C++, в восьмерке есть встроенная функция описания полей. Я использовал для обновления прайсов в регистрах сведений. А прайсы по запчастям на 4 миллиона записей нормальное явление.
AVK>>>Ключи есть а индексов нет?
S>> А зачем индексы для переноса.

AVK>Для переноса — низачем. И БД тоже не нужна.

Это тве личное мнение. Если сжать XML то он жмется раз в 10. Размер такой БД будет меньше еще раз в 100.
S>>>> Это всяко лучше чем текстовые файлы и XML.
AVK>>>Чем лучше?
S>> Ну вопервых есть описание полей.

AVK>Какое такое описание полей и чем оно лучше XSD?

Оно не лучше, оно берет лучшее из XML и бинарной сериализацией.
А тем что например такая структура

<CatalogObject.Контрагенты>
<IsFolder>true</IsFolder>
<Ref>2eca11b5-f2d4-46e4-8b86-5d4579c64a64</Ref>
<DeletionMark>false</DeletionMark>
<Parent>00000000-0000-0000-0000-000000000000</Parent>
<Code>000016 </Code>
<Description>ПОСТАВЩИКИ</Description>
<Комментарий/>
</CatalogObject.Контрагенты>

В таблице будет занимать намного меньше места. Кроме того проще управлять
S>> Для текстов нужно для этого еще файл с описанием полей

AVK>Зачем, если формат обмена документирован? Или передавать известные обеим сторонам метаданные в каждой посылке это такой метод эффективного программирования?


S>> и кроме одной таблицы в одном файле не передашь.


AVK>Это еще почему?


S>> Про XML это объёмы.


AVK>Еще раз — БД это тоже объемы, потому что БД под совершенно другой сценарий заточены.


S>>>> При этом можно использовать в SQL вместо булков.

AVK>>>
S>>bulk insert

AVK>Что с ним?


S>> Можно на основании такой БД, создавать временные таблицы, создавать индексы и применять Merge.


AVK>Зачем?
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.