Как стать автором
Обновить

Комментарии 30

В Delphi есть Класс Expression?
RTTI в Delphi это аналог Reflection в .net или аналог RTTI в C++?
Я не настоящий сварщик, вроде бы в RTTI C++ нет доступа к полям и наследованию?
EF code-first migrations собираетесь делать?
В Delphi есть Класс Expression?

Если 10-ке есть LINQ, то возможно и есть
RTTI в Delphi это аналог Reflection в .net или аналог RTTI в C++?
Я не настоящий сварщик, вроде бы в RTTI C++ нет доступа к полям и наследованию?

Есть старая и новая модели RTTI в Delphi. Но рефлексия в чистом виде — сомневаюсь. А старая модель должна быть близка к плюсАм. Вот только к каким?
EF code-first migrations собираетесь делать?

Нашими силами не справимся, тут помощник нужен
Скорее Reflection в .net это аналог Delphi RTTI.
Зря заминусовали.
Delphi 1.0 (RTTI) — 1995.
Java 1.1 (java.lang.reflect) — 1997
Про .Net вообще молчу.
так RTTI вроде гораздо скромнее версия чем .net reflection
Сейчас RTTI в Delphi очень богат
Нет, не .net

Процесс среды разработки bds.exe 2-й и 3-й XE распознавался Sysinternals Process Explorer как .Net.
Embarcadero объясняли «тяжелым наследием Delphi.Net». В XE6 такого не наблюдается, всё таки это нативный код
Не, этот поезд ушел лет 10 назад…
«Аналог EF» — очень громко сказано. Пока что у вас получился даже не ORM, а просто маппер данных из БД в сущности, наподобие Dapper. Однако желаю удачи в вашем проекте. Будет интересно посмотреть, есть ли в Delphi возможность реализовать нечто аналогичное LINQ.
Статья вводная, см. сабж. И проходила песочницу, не понятно было, пройдет ли.
Заявленная цель — проверка возможности мапинга.
LINQ в Абракадабре обещали в 10-ке. Мы пока пользуем 6-ку.
А так — реализация всего заявленного в окончании статьи на руках есть и работает
На delphi я программировал на младших курсах ВУЗА, поэтому интересно: лямбы появились в delphi?
Если да — аналог linq можно и самому написать по приколу)
Лямдбы — да, правда с «жирным» синтаксисом.

Для аналога LINQ нужны не лямбды, а Expressions, которые компилятором преобразуются в дерево выражений.

LINQ в Абракадабре обещали в 10-ке.

Хм, не видел, можно линк.
Впрочем в 10-ке их LINQ нет.
LINQ в Абракадабре обещали в 10-ке
Что такое Абракадабра?
Embarcadero
(не рекламы ради а для информации)
есть продукт TMS Aurelius. Реализует ORM и нечто подобное на LINQ.
Было бы не плохо найти способ закешировать маппер классы, дабы каждый раз не обращаться к рефлексии.

Embarcadero добавило "сахару" — возможность была ранее даже в версии 6 (ниже не знаю). published, METHODINFO ON для класса или подключение интерфейса IInvokable

Для Delphi есть DevArt EntityDAC — ORM with LINQ support
https://www.devart.com/entitydac/
А почему не взяли за основу mORMot к примеру?
Посмотрите в сторону spring4d. Особенно на ветку develop.
  1. Зачем брать что то, если в состоянии своими силами и небольшими трудозатратами закрыть функционал, в котором потом будешь уверен на 146%? Вопрос чисто риторический — сколько, например, в Fast Report, Pascal Script etc. предупреждений при сборке? Как часто красиво валится Chart в design-time? Кто нибудь группу проектов в Delphi числом больше 20-ти собирал без EOutOfMemory? Мы стараемся в нашу «систему с ответственностью 24x7» не вносить чужого кода в критичные компоненты.
  2. Каждому члену команды интересно развиваться. У меня очередь выстраивалась на «дай RTTI ковырнуть», очень полезно для саморазвития, позволяет отвлечься и поднять ЧСВ. Здесь смайл.

Брать и не нужно. Это скорее примеры с ответами на Ваши вопросы. Можно что-то подсмотреть, почитать отзывы и переступить их грабли! :)
Вроде бы как в десятке OutOfMemory поправили, увеличив в два раза доступное место для проектов в памяти в 2 раза — с 2х до 4х. Мы пока сидим на 6ке, тоже с ответственными проектами 24х7х365.
Автоматическая генерация классов по структуре таблиц разрабатываемой БД.


ИМХО, но модели баз данных надо делать самому, чтобы в БД данные писались по образу модели, а не наоборот
Т.е. строго по изложенному «ИМХО» и приведенной цитате — нужно автоматически генерировать структуру БД из классов? Выражайтесь яснее
Это наверное об MDA (model driven architecture). Лучше сконцентрироваться на реальном, а не плюшках. MDA может быть надстройкой… или совсем отдельным проектом…
Именно об этом и идет речь. Чтобы первоначальным источником модели данных были классы, а не БД.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории