Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Форум группы: delphi > Framework for Delphi


Автор: Akella 22.6.2010, 09:19
Spring framework for Delphi 2010

http://code.google.com/p/delphi-spring-framework/

http://code.google.com/p/delphi-spring-framework/wiki/GettingStarted

http://code.google.com/p/delphi-spring-framework/wiki/Roadmap


user posted image


Цитата

Features¶

    * Inversion Of Control(IoC) Container 

    The Spring.IoC namespace introduced a simple but powerful IoC/DI container which supports:

        * Both programmatic and attribute style registration/injection
        * Fluent-style registration
        * Strongly-Typed interfaces to perform compiler-time checking
        * Predefined lifetime types (Singleton/Transient/SingletonPerThread/Pooled)
        * Constructor, method, property, and even field injection
        * A service can be registered by different components identified by name
        * A component can implement several services.
        * Auto-wiring
        * Automatically register the guid interfaces as services which are implemented by the target component
        * Circular dependency checking
        * Choose how to activate a component by reflection or delegation
        * Lifecycle interfaces (IInitializable, IStartable, IRecyclable, etc) 

    * Cryptography Library 

    The Spring.Cryptography namespace provides the following cryptographic algorithms:

        * Hash algorithms (MD5, SHA-1/256/384/512)
        * Checksum algorithms (CRC-16, CRC-32)
        * Symmetric algorithms (DES, Triple-DES. Supports CipherMode, PaddingMode and IV)
        * Random number generator 

    * Generic Collection Interfaces 

    The Spring.Collections namespace provides the well-known generic collection interfaces in the .net world: ICollection<T>, IList<T>, IDictionary<TKey, TValue>. They are compatible with the System.IEnumerable<T> interface which inherits from the non-generic System.IEnumerable interface. Use the TCollections class to create instances of these interfaces. 

    * Design Patterns 

    The Spring.DesignPatterns namespace provides the following reusable design patterns:

        * Singleton Pattern
        * Observer Pattern
        * Specification Pattern 

    * Utility Classes 

    The Spring.Utils and Spring.Utils.IO namespaces provide many useful and well encapsulated utility classes.

        * TDriveInfo
        * TEnvironment
        * TOperatingSystem
        * TMessageBox
        * TBaseNCalculator
        * TFileVersionInfo
        * TFileSystemEntry
        * TFileSearcher
        * IFileEnumerable
        * TNetwork 

    * Spring.System
          o TInterfaceBase
          o TArgument
          o TBuffer
          o TEnum
          o TRtti
          o TNullable<T>
          o TLifetimeWatcher
          o TObjectHolder<T>
          o TVersion 

    * Numbering 

    The Spring.Numbering namespace provides some flexible (serial) numbering rules and generator interfaces. 

    * Live Templates 

    Live templates, which are introduced since Delphi 2006, are reusable code statements that are accessible from the Code Editor. The "Code Templates" folder in the project contains about 30 code templates that will great improve the productivity of the coding. 

    * Unit Tests 

    We follow the Agile practices and use DUnit to write test cases to ensure the framework work as expected. It also makes the refactoring easier and more confident. 

Автор: former 22.6.2010, 11:45
Наш ответ WPF. http://www.msbtree.ru/. smile 

Автор: DarkProg 22.6.2010, 12:29
Для тех кому лень читать и нету времени писать на Делфе(я щас кое-что другое осваиваю smile ) поясните это что и для чего smile

Автор: Akella 22.6.2010, 12:30
former, spring и  MSBTree - это ж разные вещи.

Добавлено через 1 минуту и 39 секунд
DarkProg, на сколько я понял, то spring - это куча готовых функций, процедур, классов и т.д.

Автор: former 22.6.2010, 12:54
Цитата(Akella @  22.6.2010,  12:30 Найти цитируемый пост)
former, spring и  MSBTree - это ж разные вещи.

Akella, а я их и не сравниваю. Просто раз уж тема про фичи пошла..

Автор: Akella 22.6.2010, 15:17
А как вам такое?
http://www.raudus.com/

При установке вижу, что есть поддержка D7-D2007.
Цитата

Raudus – это фрэймворк, основанный на AJAX, и набор компонентов для Delphi, которые позволяют создавать богатые интернет-приложения (RIA). Raudus использует библиотеку ExtJS. Подход к созданию приложений – такой же как для настольных приложений.

Возможности

    * Визуальная среда разработки. Бросайте компоненты на форму.
    * Приложение и формы в стиле Delphi.
    * Визуальные и не-визуальные компоненты, обработчики событий.
    * Программирование только на Delphi. Минимальное использование HTML, CSS и JavaScript.
    * Простая отладка. Запустите приложение и обновите страницу.
    * Сервер хранит состояние пользовательской страницы. Закройте и откройте браузер – и вернётесь к тому же состоянию.
    * Техника AJAX. Асинхронные запросы. Страница никогда не перезагружается.
    * Таймеры, паблишеры (позволяют вносить на страницу изображения, HTML и произвольное содержимое).
    * TDataSource-совместимые компоненты отображения и редактирования данных.
    * Высокая производительность. Создаётся нативный серверный код.
    * Исполняемый файл, модуль к Apache или FastCGI-приложение.
    * Полностью кросс-браузерные приложения.


user posted image  user posted image

http://www.raudus.com/samples/

Автор: former 22.6.2010, 15:40
Цитата(Akella @  22.6.2010,  15:17 Найти цитируемый пост)
А как вам такое?

Жаль только, что нет поддержки D2009. smile 

Автор: Akella 22.6.2010, 15:50
Сыровато. У мну Win7, D2007. Установилось без проблем. А ни один пример не запускается.

При открытии окна в среде выдаёт, что не может найти HttpIndy.dll
При компиляции: [DCC Error] E2151 Could not load RLINK32.DLL

Автор: chip_and_dayl 22.6.2010, 22:17
Классная вещь, даже не знал, что такое можноsmile


Akella
У меня в Вин7 и в Рад 2007 все заработало. Правда я примеры не запускал, а сам создал, смотря на видео на сайтеsmile

Автор: Akella 23.6.2010, 14:40
Минусы:
- глючная штука. Сырая
- непонятно какая лицензия.
- нет DB компонентов.
- очень тормознутая.
- мало информации на русском, хоть разработчик и русскоязычный.

Автор: CompWorm 28.6.2010, 22:27
любопытно))) smile 

Автор: Codovorot 15.7.2010, 11:03
Посоветуйте Object Persistence Framework (OPF/ORM) для Delphi 2010.

На сегодняшний момент я использую tiOPF 2 и мне он нравиться. Но хочу найти framework использующий возможности Delphi 2010 (например переработанный RTTI) в полном объеме.

Автор: Akella 8.8.2010, 16:41
http://code.google.com/p/extpascal/

Цитата

ExtPascal is an Object Pascal (Delphi, FreePascal/Lazarus) wrapper/binding for Ext JS, a complete GUI Ajax framework, made in JavaScript, for Rich Internet Application (RIA) development. ExtPascal lets you use Ext JS from Object Pascal commands issued by the server. It brings the structure and strict syntax of the Object Pascal for programming the web browser. ExtPascal will wrap Draw2d into future releases.

Автор: Akella 10.8.2010, 15:47
А как вам такое?
http://code.google.com/p/iwelite/
Бесплатный аналог IntraWeb, вроде бы, но вот эта надпись:
Elite Suite for IntraWeb / VCL for the Web
заставляет задуматься о том, что они написаны на основе этих же IntraWeb, и вовсе не бесплатный аналог.

Автор: CompWorm 13.8.2010, 21:49
у меня такой вопрос... скорее всего глупый...
- а в IDE D7 можно запихать D2010 ?

Автор: Akella 14.8.2010, 16:04
я даже не понял, что ты хочешь smile 

Автор: CompWorm 14.8.2010, 20:10
...компилить проекты D2010 его же компилятором но не в RAD студии, а в среде разработки D7.  smile 
как-то так...

Автор: Akella 16.8.2010, 12:05
Ого, там уже давно на столько большая разница.... что ничего у тебя не выйдет. Хотя бы взять юникод...

Автор: CodeMonkey 16.8.2010, 14:20
Ну, у Andy есть http://andy.jgknet.de/blog/?page_id=160, но только для D2007 и выше. Да и отладка отвалится - по понятным причинам.

Добавлено через 1 минуту и 12 секунд
Но в принципе, никто не мешает написать эксперт, который подменить кнопку компиляции и пункт в меню. По этим пунктам он просто вызовет dcc32 от D2010 для вашего проекта.

Автор: CompWorm 16.8.2010, 17:05
просто чёт настолько здоровая эта RAD
Цитата(CodeMonkey @  16.8.2010,  14:20 Найти цитируемый пост)
dcc32 от D2010 для вашего проекта. 

там параметры надо наверно ботать внимательно не думаю, что так всё просто... и дебагер очень хотелось бы  smile 

Автор: Akella 28.3.2012, 23:18
http://www.morfik.com/
http://hostinfo.ru/articles/web/rubric48/rubric55/rubric56/953/

Автор: AlekXL 11.7.2012, 14:28
Цитата(Akella @  22.6.2010,  15:17 Найти цитируемый пост)
А как вам такое?
http://www.raudus.com/

сырой и без исходников. Все понятно. Допилят - будет платный, типа аналог Datasnap REST.

Автор: AlekXL 18.11.2012, 20:36
по-поводу Delphi Spring - кто-нибудь ее использует? Сам я ее сейчас интегрирую в один проект, но как-то непонятно, улучшит ли это мой проект.
С одной стороны - мощная абстракция, типа фабрики классов COM, позволяет разбить механизм на почти независимые, и заменяемые реализации интефейсов. Dependecies Injections, кроме того.
Но с другой стороны - динамическое связывание, и возможные проблемы в runtime..


Автор: Akella 19.11.2012, 16:20
Чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки

Автор: AlekXL 22.11.2012, 21:02
Цитата(Akella @  19.11.2012,  16:20 Найти цитируемый пост)
Чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки 
 
не всегда способность обратить вопрос в шутку может заменить ум.

Автор: AlekXL 16.12.2012, 17:56
Короче, про платформу Spring:
там много чего есть, но вот что я использую пока:
есть, например некоторый специализированный под некоторые манипуляции класс TSomeStorage, который реализует интерфейс IphValuePairs. класс - в одном модуле, интерфейс, в другом.
в разделе инициализации модуля класса есть строчка

Код

phClassContext().RegisterComponent<TSomeStorage>().Implements<IphValuePairs>('settings').Implements<IphValuePairs>('localizer');


TSomeStorage, как видно реализует  IphValuePairs для двух ролей

а ф-я phClassContext =
Скрытый текст

Код

function phClassContext():TContainer;//TContainer
{$J+}
const ctx:TContainer=nil;
{$J-}
begin
  if assigned(ctx) then exit(ctx);

   sect.Enter();
   if not assigned(ctx) then ctx:=TContainer.Create();
   sect.Leave();
   sect.Free;
   sect:=nil;
   result:=ctx;
end;



там , где нужен объект IphValuePairs с семантикой  локализатора , я использую код

Код

 result:=  phClassContext().Resolve<IphValuePairs>('localizer');
 result.Load(nm);

???
Полная абстракция от релизации! 

Автор: Akella 2.1.2013, 13:56
Цитата(former @ 22.6.2010,  11:45)
Наш ответ WPF. http://www.msbtree.ru/. smile

По-моему он мёртворожденный, т.к. до сих пор в стадии разработки и тестирования.

Автор: AlekXL 13.1.2013, 08:42
Цитата(Akella @  2.1.2013,  13:56 Найти цитируемый пост)
По-моему он мёртворожденный, т.к. до сих пор в стадии разработки и тестирования. 
 блог заброшен. Исходников нет. Не о чем говорить.

Автор: Akella 4.2.2013, 12:32
TMS Aurelius обеспечивает ORM
http://www.tmssoftware.com/site/aurelius.asp

Вместо SQL

user posted image



Поддерживает
    Firebird
    Interbase
    Microsoft SQL Server
    MySQL
    NexusDB
    Oracle
    SQLite
    PostgreSQL
    DB2
    ElevateDB server
    Absolute Database

Автор: Akella 17.2.2013, 14:47
ORM http://tiopf.sourceforge.net/

Цитата
About the tiOPF
The tiOPF is an Open Source framework for Delphi & Free Pascal that simplifies the mapping of an object oriented business model into a relational database.
What is tiOPF

tiOPF is a Object Persistence Framework. That is, it is a framework based around saving your objects to, and loading them from, databases and/or flat files.


http://tiopf.sourceforge.net/Doc/overview/index.shtml

Автор: Akella 17.2.2013, 15:03
ORM http://www.instantobjects.org/

Цитата
 InstantObjects is an integrated framework for developing object-oriented business solutions in Delphi™. The framework provides the foundation for the development process as well as the engine that powers the final application.

InstantObjects offers:

    Model realization in the Delphi IDE via integrated two-way tools.
    Object persistence in the most common relational databases or flat XML-based files.
    Object presentation via standard data-aware controls.


http://sourceforge.net/apps/mediawiki/instantobjects/index.php?title=Main_Page

Автор: Akella 21.6.2013, 13:15
http://arcana.sivv.com/duckduckdelphi


Код

if AObject is TEdit then 

  TEdit(AObject).visible := False; 


... you would instead inspect the object to see if it has a visible proprety and act upon it regardless the type...

Код

if AObject.duck.has('visible') then 

  AObject.duck.sett('visible', False);


This alone is interesting, but what if you wanted to operate on all objects that have a visible property?  say for example you wanted to hide all objects on a form...

Код

Form1.duck.all.has('visible').sett(false);


This code iterates through all objects on the form and sets the ones that have a "visible" property to false, regardless their type.

What if you want to clear all memos, text edits, etc on a form via a buttonclick?

Код

procedure TForm1.Button2Click(Sender: TObject);
begin
  duck.all.can('Clear').go;
end;


pretty simple, eh?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)