|
Цифровые технологии, программирование и сайтостроительство Полупрофессиональный подраздел. Подробное описание раздела находится в прикреплённой теме. |
|
Опции темы |
28.07.2009, 02:21 | #1 |
дитя Ренессанса
Регистрация: 29.05.2008
Сообщений: 2,346
|
Linq
Полтора года назад я начал разрабатывать фреймворк Botan, включающий в себя ORM и генератор форм. Сейчас он в несколько доработанном виде внедрен в реальную практику, и я, удовлетворив свои творческие амбиции и наигравшись в красивую архитектуру, решил больше не выпендриваться, и освоить-таки стандартный Linq2Sql. Я и раньше бегло изучал этот ORM, и он казался мне очень неплохим.
Через полчаса после попытки сделать на нём пробное приложение радость удалилась далеко и надолго. Похоже, что на трансляции лямбда-выражений в SQL-запросы его прелести заканчиваются. То, что для обработки изменений значений свойств он генерирует partial-методы, воспроизводится за полчаса: большая трудоёмкость только в создании обработчика лямбда-выражений. Причём большая настолько, что делать это самому - сущее безумие. Я давно уже думал о том, чтобы прикрутить к Botan класс SqlProvider, который преобразует лямбда-выражения в SQL-запросы в Linq2Sql, но пока не придумал как. Похоже, что придётся обойтись без этой доли прогрессивного синтаксического сахара и сидеть на старом добром паттерне Query object. Вот уж воистину, свои велосипеды ближе к телу. При всём уважении к Microsoft.
__________________
Инструменты сердятся, когда на них не играют |
28.07.2009, 02:38 | #2 |
take a look
Регистрация: 03.03.2008
Сообщений: 2,119
|
неправильно ты дядя Фёдор бутерброд ешь...
|
28.07.2009, 07:05 | #3 |
Мохнатый Красношёрстный
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
|
Modus, а если взять заведомо упрощённый синтаксис. Сходу могу порекомендовать синтаксис @ функций от LotusNotes. @Функция(Параметр1; Параметр2; Параметр3;..)
|
28.07.2009, 10:35 | #4 |
дитя Ренессанса
Регистрация: 29.05.2008
Сообщений: 2,346
|
В LotusNotes задача языковой интеграции не решена. По идее, фишка Linq как раз в том, что запросы к базе пишутся прямо в коде на C# со всеми примуществами строгой типизацией и т.п. После работы в Axapta я относился к Linq в духе "давно пора".
А так - что в связке .NET + SQL, что в Lotus Notes, императивная часть и функцональная пишутся на разных языках, которые как-то друг с другом взаимодействуют. Я хотел отойти от методов 2005 года, перейти на более современные технологии, но столкнулся с тем, что они нифига не удобнее. Макинсон, а как правильно?
__________________
Инструменты сердятся, когда на них не играют |
28.07.2009, 10:42 | #5 |
Мохнатый Красношёрстный
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
|
Да, не решена, только это глюк не синтаксиса, а среды.
Я этот синтаксис потому предложил, что он однозначный, парсер писать -- плёвое дело. Остаётся только словарь определить. Ну и изначально заложить расширяемость. |
28.07.2009, 11:06 | #6 |
дитя Ренессанса
Регистрация: 29.05.2008
Сообщений: 2,346
|
Парсер там в принципе не нужен. Лямбда-выражения в C# уже приходят в виде дерева. Нужно по этому дереву построить запрос SQL. Я не владею математическим аппаратом преобразования одного дерева в другое, да и представление лямбда-выражений в виде дерева простотой не отличается. DevExpress'овские фильтры я в свою объектную модель запроса уже преобразую, но кривовато, работает только в простых случаях (для реальной практики годится, потому что сложные случаи маловероятны).
Кстати, Макинсон, очень рад тебя видеть тут в добром здравии.
__________________
Инструменты сердятся, когда на них не играют |
28.07.2009, 11:35 | #7 |
Мохнатый Красношёрстный
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
|
Формат дерева покурить где можно? Может тоже где заюзаю.
|
28.07.2009, 14:07 | #8 |
дитя Ренессанса
Регистрация: 29.05.2008
Сообщений: 2,346
|
Ничего лучше чем http://blogs.msdn.com/charlie/archiv...ee-basics.aspx не нагуглил.
__________________
Инструменты сердятся, когда на них не играют |
28.07.2009, 16:44 | #9 |
take a look
Регистрация: 03.03.2008
Сообщений: 2,119
|
Спасибо.
Я не знаток этой тематики... |
28.07.2009, 17:49 | #10 |
дитя Ренессанса
Регистрация: 29.05.2008
Сообщений: 2,346
|
Тогда что ты имел в виду этой цитатой?
__________________
Инструменты сердятся, когда на них не играют |