Re[16]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 11:57
Оценка:
Tom>>Можешь пояснить как может выглядеть собственный DSL для работы с данными? Что принципиально будет в нём отличного от того же TSQL?
VD>Принципиально ничего. Но он будет встроен в полноценный язык (и удобный) программирования. Ты получаешь возможность писать весь код приложения на одном языке.
Получается что, вместо использование/написания провайдера linq нормальный подход — свой DSL для работы с данными. Так?
Есть ли уже готовые примеры?

VD>Кто мы такие чтобы мешать тебе? Пробуй...

VD>Но это же ты пришел к нам и задаешь вопросы, правда? Вот мы тебе и отвечаем, что нам компромиссы подобные описанным тобой не нравятся.
да, да да и большое спасибо за ответы!
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[13]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 12:02
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>И всё же, какой провайдер ты предлагаешь использовать СЕЙЧАС. Не завтра и не после завтра, а сейчас?


Я же тебе ответил. Зависит от задач. Лично тебе подошел бы linq2sql, так как ты работаешь с одной СУБД.
IT обещал закончить провайдер в течении 1-2 месяцев. Если это произойдет, то его провайдер будет предпочтительнее.

VD>>Одни говорят (давно), а другие делают. Улавливаешь разницу?

Tom>А я по твоему ничего не делаю? Просто ты волен заниматсья тем что тебе интересно, а мне приходится работать в реальных проектах с большой и многолетней историей (более 15 лет) и огромный количеством кода. Если формально посчитать — то более 100 мегабайт.

Я как бы и не скрывал, что в этом отношении у меня есть некоторое приемущество. Но тот же IT в том же положении, что и ты. Но он выбирает другой путь.

Tom>Он уже огромный, и я его уменьшаю в разы. По моим оченкам обьём кода я смогу уменьшить на порядок


Рад за твои оценки. Расскажи потом, чем дело кончилось. Кстати, процедуры аналогичные приведенной тобой я бы подверг рефакторингу. Это монстр, а не код. Его точно поддерживать будет сложно.

Tom>Какие примочки и причём тут гнилапя база? Для MS SQL Server — а единственный язык общения — это TSQL.


Я уже говорил об этом. TSQL — это кривой и очень примитивный скрипт в который встроена поддержка SQL. Равития у него нет. Его латают по скорому, чтобы хоть как-то использовать можно было.
Я на этом говне писал еще в 1995 году и могу сравнивать с тем, что есть сейчас. Отличия можно пересчитать по пальцам одной руки.

И вообще, если TSQL так крут, то зачем тебе вообще C# сдался? Пиши все на TSQL.

VD>>При этом тот же "поставщик" предлагает конкретное решение — linq + современные дотнет-языки. И это решение действительно развивается.

Tom>От MS реального решения для работы с данными пока нет. И тем более нет решения позволяющего правно смигрировать с существующего кода.

Это ты себя убеждаешь в этом. А реально оно есть. Не совершенное пока, но есть.

Tom>Влад, ты какой нибудь другой язык который понимает SQL сервер?


Этот язык называется SQL. Его возможностей достаточно для работы с данными из БД. А разные TSQL-и и PL-SQL — это попытка прикрутить скрипты в СУБД. Причем TSQL просто провальная попытка, а PL-SQL кривенькая, но рабочая.
Linq же решает очень похожую задачу, только вместо того чтобы выдумывать кривой скрипт, Linq предоставляет средства для встраивания запросов в любой язык. Ну, с DML пока недоработка. Но сам подход намньго более верный.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 12:07
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Получается что, вместо использование/написания провайдера linq нормальный подход — свой DSL для работы с данными. Так?


Свое расширение для DML. Linq отлично справляется с запросной частью. Ну, может быть какое-то решение для тех же оптимизаций придумать.

Tom>Есть ли уже готовые примеры?


Я не занимался этим вопросом. Знаю только, что IT близок к созданию своего провайдера который точно будет поддерживать DML.

VD>>Кто мы такие чтобы мешать тебе? Пробуй...

VD>>Но это же ты пришел к нам и задаешь вопросы, правда? Вот мы тебе и отвечаем, что нам компромиссы подобные описанным тобой не нравятся.
Tom>да, да да и большое спасибо за ответы!

На здоровье. Я это к тому сказал, чтобы ты не воспринимал наши слова как навязывание тебе нашего мнения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 12:15
Оценка:
Здравствуйте, Tom, Вы писали:

VD>>Какой вам больше по душе. Если вы ориентируетесь исключительно на MS SQL Server, то наверно linq2sql — лучший выбор.

Tom>Опять двадцать пять. Этот проект мёртв. Ещё предложения?

Что за чушь? Его не сделают кроссерверным и не будут развивать такими же темпами как EF. Но поддерживать будут, так как он уже часть фрэймворка.

Tom> И что всё таки делать с linq & DML?


Реализовать самому или дождаться пока появится провайдер со встроенным DML.
Вариант 3 — использовать обновление объектов и датаконтекст (он мне самому не нравится).

Tom>Понятно, спасибо. Это на мой взгляд невозможно, и глупо. невозможно потому что linq как ты сам писал не поддерживает DML а глупо потому что от того что масло станет маслянным качество проекта не улучшится.


Сколько у вас там сложных запросов использующих DML (за исключением манипуляции с временными таблицами)?
Ну, и оставьте их в виде хранимок. Это один черт лучше чем все держать в вдие TSQL-я.

VD>>Ты просто плохо в нем разобрался. Там есть лишнее, но его можно не использовать. Проблемы EF в другом. Он плохо поддерживает функционал конкретной СУБД. Работа с датами, например, там не к черту не годится. Отсюда многие агрегатные запросы могут просто не получиться реализовать.

Tom>Кы читал куда они двигаются/развиваются?

Да. Но схему linq2sql они накрывают полностью, так что можешь просто не использовать то что тебе не нужно.

Tom>Вот что исходники откроют я верю. Как раз из за проблем поддержки. Что бы спихнуть её на комьюнити. Но без открытия исходников компилятора нормально линк развивать не получится. Тот же DML полностью не реализовать, да и я не представляю сколько для этого понадобится ресурсов.


DML реализовать можно, хотя и сложно. А что там еще развивать то?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 12:22
Оценка:
VD>Рад за твои оценки. Расскажи потом, чем дело кончилось. Кстати, процедуры аналогичные приведенной тобой я бы подверг рефакторингу. Это монстр, а не код. Его точно поддерживать будет сложно.
Да я бы тоже их подверг, что и придётся делать скоро. Но рефакторинг будет связан с новой большой ыичей из за которого пол базы придётся перелопатить.
заметки на полях я колнечно буду делать и потом расскажу что вышло. Вполне возможно что подход пойдёт в мусорку и надо будет думать что то другое.

Tom>>Какие примочки и причём тут гнилапя база? Для MS SQL Server — а единственный язык общения — это TSQL.


VD>Я уже говорил об этом. TSQL — это кривой и очень примитивный скрипт в который встроена поддержка SQL. Равития у него нет. Его латают по скорому, чтобы хоть как-то использовать можно было.

VD>Я на этом говне писал еще в 1995 году и могу сравнивать с тем, что есть сейчас. Отличия можно пересчитать по пальцам одной руки.

VD>И вообще, если TSQL так крут, то зачем тебе вообще C# сдался? Пиши все на TSQL.

Ну логику обоработки данных иы и пишем на TSQL.

VD>>>При этом тот же "поставщик" предлагает конкретное решение — linq + современные дотнет-языки. И это решение действительно развивается.

Tom>>От MS реального решения для работы с данными пока нет. И тем более нет решения позволяющего правно смигрировать с существующего кода.

VD>Это ты себя убеждаешь в этом. А реально оно есть. Не совершенное пока, но есть.


Tom>>Влад, ты какой нибудь другой язык который понимает SQL сервер?


VD>Этот язык называется SQL. Его возможностей достаточно для работы с данными из БД. А разные TSQL-и и PL-SQL — это попытка прикрутить скрипты в СУБД. Причем TSQL просто провальная попытка, а PL-SQL кривенькая, но рабочая.

Интерено про PL-SQL и TSQL детали. Я с PL-SQL сталкивался так давно что не помню практически ничего.

VD>Linq же решает очень похожую задачу, только вместо того чтобы выдумывать кривой скрипт, Linq предоставляет средства для встраивания запросов в любой язык. Ну, с DML пока недоработка. Но сам подход намньго более верный.

Так я и не смпорбю что ВЕКТОР правильный, а реализация пока кривенькая. Вот будет DML тогда и будем переписывать.

Хотя для некоторых сложных запросов мы попытаемся сделать декомпозицию с помощью линка. Посмотрим насколько это реально.
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[15]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 12:33
Оценка: 1 (1)
Здравствуйте, Tom, Вы писали:

Tom>Нет. Сам подход, как ВЕКТОР мне нравится. Не нравится что это очередное недоделанное решение. Опять же возвращаясь к DML.


Ну, и нам нравится сам подход, но не его сегодняшная реализация. EF и правда идет не туда. DML и правда необходим.
И мы хотим просто плюнуть на МС который шатает то туда, то сюда и сделать все сами так как считаем нужным.

Tom>Я не против использовать линк если будет чётко ясно что;

Tom>1. Решение обеспечивает эволюционную модель развития приложения. Переписать всё с нуля — такой подход не работает

Ну, уж тут придется что-то делать. Понятно, что по мановению волшебной палочки TSQL не превратится в linq.
Можно переписывать проект по мере необходимости. Скажем встала задача изменить то-то и то-то, меняем связанную с этим реализацию на linq...

Tom>2. Я смогу перенести все текущие запросы и linq будет полностью хватать для обработки данных в нашей системе


Это само собой разумеется. Кроме CTE (т.е. рекурсивных запросов) все остальное на linq переносится.

Tom>Но если посмотреть реально на ситуацию то такого не произойдёт в ближайшем будущем.

Tom>Ибо, сама идея EF+linq 2 entity не правильная. А linq2sql мёртвая.

Опять возвращаемся к исходным посылкам. Ты исходишь из посылок, что за тебя все должны сделать и предложить тебе законченное (и идеально сделанное) решение. Мы исходим из того, что решения удовлетворяющего нас на 100% нет. Но есть подход который можно развить до необходимого решения.
Мы предлагаем создасть свое решение и насрать на Майкрософт, таз уж их там колбасит по черному.
Ты же предлагаешь реализовть какой-то некрасивый компромис и пользоваться убогим транзактом.

Подходы в общем-то чем-то похожи. Оба имеют цель сделать собственное решение. Но твой подход — это половичатое решение которое по любому создаст кучу проблем.
Реален ли твой подход? Наверно — да! Но лично мне он не нравится.

Tom>Вместо неё M$ надо было заняться обьектной базой и запросами к ней.


Ну, чем им там надо было бы заняться не нам с тобой решать. А то в этом форуме было бы более уместно обсудить вопрос почему МС развивает C# и F#, а не Nemerle. Казалось бы многие задаются этим вопросом, а в МС даже ответить на него не хотят.

Тем более, что вопрос ООБД крайне спорный. Я не считаю ООБД перспективной идеей. ООП банально более примитивная технология нежели ФП. Современные СУБД гораздо ближе к ФП и потому их средства обработки данных (запросы) намного мощнее.

Tom>Вот тогда всё бы стало на свои места. Пишем себе на managed языке обьекты, сохраняим их в обьектнуцю БД и выбираем данные на том же языке на котором описаны сами данные.


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

Задумайся над тем почему ты исползуешь транзакт, а не пишешь все на С#? Или даже поставим вопрос так. Почему ты в транзакте используешь SQL?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Проблемы организации OR-мапинга
От: Flem1234  
Дата: 10.04.09 12:40
Оценка: 10 (1)
Здравствуйте, Tom, Вы писали:

Tom>Опять двадцать пять. Этот проект мёртв. Ещё предложения? И что всё таки делать с linq & DML?


Есть такая штука IQToolkit.
Там и DML, и исходники и все что хочешь.
Re[16]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 12:41
Оценка:
VD>Опять возвращаемся к исходным посылкам. Ты исходишь из посылок, что за тебя все должны сделать и предложить тебе законченное (и идеально сделанное) решение. Мы исходим из того, что решения удовлетворяющего нас на 100% нет. Но есть подход который можно развить до необходимого решения.
VD>Мы предлагаем создасть свое решение и насрать на Майкрософт, таз уж их там колбасит по черному.
VD>Ты же предлагаешь реализовть какой-то некрасивый компромис и пользоваться убогим транзактом.

VD>Подходы в общем-то чем-то похожи. Оба имеют цель сделать собственное решение. Но твой подход — это половичатое решение которое по любому создаст кучу проблем.

VD>Реален ли твой подход? Наверно — да! Но лично мне он не нравится.
Ну сказать что бы он мне сильно нравился я такого не скажу. Я просто попытался придумать меньшую из зол.
А написать своё провайдер или DSL дял работы с данными так меня просто не поймут.
Представь сколько усилий понадобится на поддержку и развитие этого решения.
Да и работа с данными станет проще конечно но не на порядок.

Tom>>Вместо неё M$ надо было заняться обьектной базой и запросами к ней.


VD>Ну, чем им там надо было бы заняться не нам с тобой решать. А то в этом форуме было бы более уместно обсудить вопрос почему МС развивает C# и F#, а не Nemerle. Казалось бы многие задаются этим вопросом, а в МС даже ответить на него не хотят.

Я думаю эту ветку просто перенести можно, немерл тут офтопик пока.

VD>Тем более, что вопрос ООБД крайне спорный. Я не считаю ООБД перспективной идеей. ООП банально более примитивная технология нежели ФП. Современные СУБД гораздо ближе к ФП и потому их средства обработки данных (запросы) намного мощнее.

О, тогад вопрос, есть ли смысл в linq 2 entity? Ведь это попытка как я понимаю как раз делать запросы над некой обьектной структурой.

Tom>>Вот тогда всё бы стало на свои места. Пишем себе на managed языке обьекты, сохраняим их в обьектнуцю БД и выбираем данные на том же языке на котором описаны сами данные.


VD>Ты меня извини, но я тебе скажу правду от которой ты можешь обидится, но эта действительно правда. Ты смотришь на мир глазами незнайки. ООП далеко не лучшее решение во всех случаях. Обработка данных — это как раз тот случай где ООП практически ничего путного предложить не может.

А гед я спорю с этим? Именно по этому я не предлагаю например всякую чёрную магию в виде ORM итп... А обрабатываю данные при помощи запросов

VD>Задумайся над тем почему ты исползуешь транзакт, а не пишешь все на С#? Или даже поставим вопрос так. Почему ты в транзакте используешь SQL?

Не понял
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[15]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 12:43
Оценка:
Здравствуйте, Tom, Вы писали:

VD>>И вообще, если TSQL так крут, то зачем тебе вообще C# сдался? Пиши все на TSQL.

Tom>Ну логику обоработки данных иы и пишем на TSQL.

А что за логика еще есть в вашем приложении? Презентационная что ли?
Зачем вам тогда C#. Возмите tcl/tk, например.

Tom>Так я и не смпорбю что ВЕКТОР правильный, а реализация пока кривенькая. Вот будет DML тогда и будем переписывать.


Но вот и мы о том же. Только ждать милости от природы не в наших правилах.

Tom>Хотя для некоторых сложных запросов мы попытаемся сделать декомпозицию с помощью линка. Посмотрим насколько это реально.


ОК. Можешь обращаться за помощь. Думаю многие согласятся помочь советами в этом деле.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 12:50
Оценка:
VD>А что за логика еще есть в вашем приложении? Презентационная что ли?
GUI стоят в сторонке. Они есть конечно, нескольких типов но тут не сильно много логики. Есть ещё работа с железяками, custom scripting (programmability),

VD>ОК. Можешь обращаться за помощь. Думаю многие согласятся помочь советами в этом деле.

Боюсь за@бу я всех тогда

У нас сейчас планируется первая часть рефакторинга — полное переползание на .NET (да да да, только сейчас... ((( )
будут и другие, связанные с базой. Через годик. Может тогда на рынке будут достойные решения работы с БД.
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[17]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 13:05
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>А написать своё провайдер или DSL дял работы с данными так меня просто не поймут.

Tom>Представь сколько усилий понадобится на поддержку и развитие этого решения.
Tom>Да и работа с данными станет проще конечно но не на порядок.

Как показывает практика для некоторых задач создание специализированного под задачу ДСЛ-я позволяет упростить решение на порядки.
Дело тут в том, что реализация ДСЛ-я — это весьма механистичная работа. Задача же описанная на ДСЛ-е содержит меньше ошибок (ДСЛ можно составить так, чтобы ошибки были невозможны, или чтобы был контроль) и ее намного проще осознать (так как объем и читабельность кода при этом снижаются на порядки).
Но это если справедливо для ДСЛ-ей описывающих прикладную задачу. ДСЛ доступа к данным конечно же такого выигрыша дать не может, так как один фиг будет много другого кода.

Tom>О, тогад вопрос, есть ли смысл в linq 2 entity? Ведь это попытка как я понимаю как раз делать запросы над некой обьектной структурой.


Ключевое слово тут "entity". Entity и объект — это не одно и то же. EF ушел не туда в некоторых областях, но темнеменее его дизайн строится на основе модели данных. Я еще в 1995-ом проектировал БД с использованием EF-Win. Это такой Entity-моделлер. Поверь в EF-Win не было ни слова про объекты. Так же и в EF. Модель там от объектов не зависит. На объекты делается только отображение. А без этого никак. Ты же не можешь в ООЯ работать с понятием "запись БД"? В прочем, анонимные типы — это аналог кортежей БД. Так что... Но они и используются при работе с EF. Что плохо в EF — так это то же отсуствие поддержки DML и очень плохая поддержка функций конкретной СУБД.

Tom>>>Вот тогда всё бы стало на свои места. Пишем себе на managed языке обьекты, сохраняим их в обьектнуцю БД и выбираем данные на том же языке на котором описаны сами данные.


VD>>Ты меня извини, но я тебе скажу правду от которой ты можешь обидится, но эта действительно правда. Ты смотришь на мир глазами незнайки. ООП далеко не лучшее решение во всех случаях. Обработка данных — это как раз тот случай где ООП практически ничего путного предложить не может.

Tom>А гед я спорю с этим?

Ты считаешь, что ООБД — это решение проблемы. На самом деле это такой же тупик как идеи ОР-маперов вроде Гибернэйта.

Tom>Именно по этому я не предлагаю например всякую чёрную магию в виде ORM итп... А обрабатываю данные при помощи запросов


Тогда ты уж определись. Потому что ООБД и запросы — это разные подходы.
ООП оперирует с графами объектов. Коллекции (в ООП) не являются строительной единицей. Напротив, в РСБУД коллекция является основной строительной единицей. Запросы же манипулируются с коллекциями. И именно по этому ООП и БД так плохо совмещаются.

На мой взгляд РСУБД — это самый правильный механизм хранения и обработки данны. А мапинг нужен только очень простой — строк таблиц на плоские объекты. Именно так было сделано в linq2sql. EF немного вышел за эти границы, но тем не мнее поддерживает эту парадигму. А вот ООБД и разные гибернэйты предлагают плясать от объектного графа, что и создает проблемы.
Так что без разница OR-Mappre или ООБД. Это все равно тупиковый путь.

VD>>Задумайся над тем почему ты исползуешь транзакт, а не пишешь все на С#? Или даже поставим вопрос так. Почему ты в транзакте используешь SQL?

Tom>Не понял

Почему ты не используешь методы, циклы и другие атрибуты императивных языков для обрботки информации?
Почему вместо этого ты используешь запросы?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 13:44
Оценка:
VD>Вопрос был: сгенерирует ли твой генератор один тип для этих двух запросов, или два разных?
Генератор сгенерирует скорее метод возвращающий анонимный тип.
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[15]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 13:45
Оценка:
Tom>Генератор сгенерирует скорее метод возвращающий анонимный тип.

Хотя от этого наверное гемора будет больше чем пользы. Надо в общем подумать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[15]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 14:54
Оценка:
Здравствуйте, Tom, Вы писали:

VD>>Вопрос был: сгенерирует ли твой генератор один тип для этих двух запросов, или два разных?

Tom>Генератор сгенерирует скорее метод возвращающий анонимный тип.

Гы. Анонимный тип нельзя возвратить из метода.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Проблемы организации OR-мапинга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 10.04.09 14:57
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Ключевое слово тут "entity". Entity и объект — это не одно и то же. EF ушел не туда в некоторых областях, но темнеменее его дизайн строится на основе модели данных. Я еще в 1995-ом проектировал БД с использованием EF-Win. Это такой Entity-моделлер. Поверь в EF-Win не было ни слова про объекты. Так же и в EF.

Только программка называется ER-Win, хотя работа в ней очень похожа на работу в дизайнере EF.
Re[16]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 15:02
Оценка:
VD>Гы. Анонимный тип нельзя возвратить из метода.
С использованием чёрной магии можно
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[19]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 15:03
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Только программка называется ER-Win,


Ага. Это я очепятался.

G>хотя работа в ней очень похожа на работу в дизайнере EF.


Ага. Только наоборот. И это именно потому, что они оба редактируют диаграмму сущность-связь, а не граф объектов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.09 15:05
Оценка:
Здравствуйте, Tom, Вы писали:

VD>>Гы. Анонимный тип нельзя возвратить из метода.

Tom>С использованием чёрной магии можно

С использованием грязных хаков.

Кстати, о причках. В Nemerle есть кортежи которые без проблем возвращаться из методов. Плюс есть локальные функции для которых есть вывод типов. Так что даже LINQ-ом и то из него проще пользоваться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 10.04.09 15:23
Оценка:
VD>С использованием грязных хаков.
не то что бы сильно грязных но не очень симпатишных

//
// Method that returns anonymous type as objectobject
//
object ReturnAnonymous()
{
  return new { City="Prague", Name="Tomas" };
}

//
// Application entry-pointv
//
void Main()
{
  // Get instance of anonymous type with 'City' and 'Name' properties
  object o = ReturnAnonymous();
  
  // This call to 'Cast' method converts first parameter (object) to the
  // same type as the type of second parameter - which is in this case 
  // anonymous type with 'City' and 'Name'properties
  var typed = Cast(o, new { City="", Name="" });
  Console.WriteLine("Name={0}, City={1}", typed.Name, typed.City);
}

// Cast method - thanks to type inference when calling methods it 
// is possible to cast object to type without knowing the type name
T Cast<T>(object obj, T type)
{
  return (T)obj;
}


изврат конечно

VD>Кстати, о причках. В Nemerle есть кортежи которые без проблем возвращаться из методов. Плюс есть локальные функции для которых есть вывод типов. Так что даже LINQ-ом и то из него проще пользоваться.

Я кстате так и не понял почему анонимый тип в C# нельзя явно обьявлять. Как в других человеческих языках. (((
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[19]: Проблемы организации OR-мапинга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 10.04.09 15:44
Оценка: +1
Здравствуйте, Tom, Вы писали:

VD>>С использованием грязных хаков.

Tom>не то что бы сильно грязных но не очень симпатишных...
Tom>изврат конечно
Мало того что изврат, так еще и работать будет только в пределах одной сборки.

VD>>Кстати, о причках. В Nemerle есть кортежи которые без проблем возвращаться из методов. Плюс есть локальные функции для которых есть вывод типов. Так что даже LINQ-ом и то из него проще пользоваться.

Tom>Я кстате так и не понял почему анонимый тип в C# нельзя явно обьявлять. Как в других человеческих языках. (((
Наверное потому что он будет неанонимным
Наверное имеется ввиду вывод типов для возвращаемых значений методов класса.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.