Существуют ли какие-либо фреймворки / библиотеки для Delphi, которые приближаются к функциональности, предлагаемой Bold/Eco?
Не уверен, что случилось с Bold/Eco во время перехода Borland/Codegear/Embarcadero, но я уверен, что пропущу это в более новых версиях Delphi. Кто-нибудь знает структуру, которая приближается?
Если нет, возможно, вы могли бы предложить комбинацию библиотек и компонентов, которая подходит ближе.
5 ответов
Альтернативы - список OPF для Win32 Delphi (с кратким описанием для каждого).
Я только когда-либо использовал Bold для Delphi (и до сих пор использую), но я не думаю, что какая-либо из альтернатив подходит даже близко в наборе функций. И это, я полагаю, ключ, какие функции важны для вас? Если вам не нужно все, что предоставляет Bold, возможно, вы можете выбрать одну из альтернатив.
В качестве альтернативы, вы все еще можете использовать Bold, последний выпуск - Bold для Delphi 2006 и надеяться, что Embarcadero в конечном итоге откроет его или продолжит разработку. Пользователь постоянно пытается что-то сделать с Bold, но Embarcadero, похоже, хорошо справляется с этим.
Кажется, hcOPF - единственная реальная ORM для Delphi win32, но она еще не приблизилась.
Для UML-моделирования и тому подобного для Delphi win32(или C#) я рекомендую Model Maker.
Оба инструмента имеют поддержку Delphi 2010.
--jeroen
Это один из самых больших недостатков в сегодняшнем Delphi. Имея только старый TDataset
Парадигма не достаточно для сложных проектов.
Написать простую активную запись в Delphi 2010 не сложно. Но для сложного проекта вам понадобится datamapper с внешним конфигурационным файлом.
Я пишу простой Hibernate для Delphi (DORM или Delphi Object Relational Mapper). Если кто-то хочет принять участие, отправьте электронное письмо по адресу d [dot] teti at bitTime [dot] it.
например. Ниже приведен модульный тест для DORM
procedure TTestDORM.TestUpdate;
var
p: TPersona; //TPersona is a PODO "Plain Old Delphi Object" TObject descendat
guid: string;
begin
p := TPersona.Create;
p.Nome := 'Daniele';
p.Cognome := 'Teti';
p.Eta := 30;
p.DataDiNascita := EncodeDate(1979,11,04);
Session.Save(p); //DORM do an INSERT
guid := p.guid;
Session.Commit;
Session.StartTransaction;
p := Session.Load(TypeInfo(TPersona), guid) as TPersona; //DORM do a SELECT
p.Nome := 'Peter';
Session.Save(p); //DORM do an UPDATE
Session.Commit;
CheckEquals(1, Session.Count(TPersona));
p := Session.Load(TypeInfo(TPersona), guid) as TPersona; //DORM do a SELECT
CheckEquals('Peter', p.Nome);
end;
Кто-то заинтересован?
Я думаю, что вы можете сделать работу с TMS Aurelius и TMS Data Modeler
Вот интересная ссылка
Начать редактировать / обновлять:
С тех пор как этот ответ был опубликован, структура была значительно улучшена, особенно для предоставления всех необходимых функций для реализации истинного доменно-управляемого дизайна:
- Агностицизм базы данных (не только SQLite3, но и любой базы данных, включая MS SQL или Oracle) ORM (даже с версией Delphi Starter);
Interface
услуги на основе, аналогичные WCF;- Очень быстро
http.sys
управляемый событиями HTTP-сервер, работающий в режиме ядра; - Готовы работать с клиентами AJAX;
- Множество улучшений и исправлений;
- Теперь он называется Synopse mORMot Framework.
Со всеми преимуществами Delphi, то есть небольшим и быстрым исполняемым файлом, не требующим времени выполнения / фреймворка, всем предоставленным исходным кодом (без подхода "черного ящика"), без конкретной ОС или дополнительных затрат.
См. Эту статью в блоге, чтобы узнать, как mORMot, вероятно, является первой средой Delphi, предоставляющей все кирпичики, необходимые для реализации доменного дизайна. С более легким и быстрым решением, чем "классические" реализации Java или.Net.
Конец Редактировать / обновить
Я разработал каркас ORM RESTful на основе JSON, используя SQlite3 для сохранения своей базы данных.
Конечно, он не такой полный, как Bold или OPF (без UML и OCL), но он работает и тестируется с Delphi 7 до Delphi 2010. И он все еще поддерживается и будет всегда, потому что он бесплатный и с открытым исходным кодом.
У вас есть интересные функции, такие как создание встроенного пользовательского интерфейса и i18n, создание отчетов и экспорт в PDF, клиент-серверные услуги, интегрированное модульное тестирование. Он использует JSON для передачи данных и архитектуру RESTful для межпроцессного взаимодействия, сообщений Windows GDI, именованных каналов или HTTP/1.1. Таким образом, его можно использовать для разработки приложений AJAX.
Эта структура изящно интегрируется с нашим инструментом SynProject, который создает документацию из исходного кода, с красивыми графиками и полной прослеживаемостью документов (она использовалась для выполнения требований IEC 62304 для медицинского ПО, которое мы написали с этой средой). Таким образом, у вас нет UML, но у вас есть документация и диаграммы под рукой.
Если вы заинтересованы в ORM и Delphi, присоединяйтесь к приключениям Open Source! http://blog.synopse.info/category/Open-Source-Projects/SQLite3-Framework