European Conference - Sharing Experiences and Future Roadmap
The European Conference features discussions on the Spring4D framework, testimonials from users, and insights from the original author. Discover how this open-source project is revolutionizing development in Delphi.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
european conference
Sharing experiences and future roadmap
Sharing experiences and future roadmap Spring4D is used all around the world
Sharing experiences and future roadmap What people say I was about to move to .NET when I discovered Spring4D and now I enjoy developing in Delphi again IEnumerable<T> is the most amazing stuff since sliced bread! (one of my coworkers)
Sharing experiences and future roadmap From the original author Baoquan Zuo I founded this open source project when Delphi 2010 came out. Some modern features were introduced then, including enhanced RTTI and anonymous method in addition to Unicode and generics introduced in the former version. I named it Delphi Spring Framework as I hoped we could leverage new language features to build more brilliant infrastructure. Although I admit the project name may confuse people as it sounds like a portal of the Spring framework in the Java world.
Sharing experiences and future roadmap Although the goals are ambitious, the initial release consists of some system utility classes and basic interfaced collections borrowed from .Net. A simple Dependency Injection Framework (originally named as IoC container) was added later. Thanks to Nick Hodges, he praised the project very much and he supported it since the very beginning. He also invited us to Technology Partners of Embarcadero. It is very pity that I could not join you at this special moment. I hope you enjoy this conference with our two insightful Delphi experts!
Sharing experiences and future roadmap David Millington The Parnassus plugins (Bookmarks and Navigator) use Spring4D heavily, mostly for the collections. As well as being interface- based (good for memory management, although a nicety, not an essential) the collections are full-featured, with a vast number of useful methods. I particularly like the number of methods taking predicates for filtering or finding. I also really like the easy ability to have a read-only collection. It's easy to created sorted lists, dictionaries, etc and to code against them in a natural way. All bookmarks in Bookmarks, all results of code parsing in Navigator, etc are all stored in Spring4D collections.
Sharing experiences and future roadmap It can be surprisingly hard with some classes to do simple things like "add everything in this collection to this other collection" or "return a new list matching this condition". The Spring4D classes make this kind of operation straightforward. Use Spring4D. The collections are clear, easy to use, with powerful methods (Where() alone is amazing), with a wide range of collection interfaces and then sometimes multiple implementations for each interface for specific behaviour, and the interfaces and structure make it easier to write safer code with clear ownership and responsibilities. Highly recommended.
Sharing experiences and future roadmap Roadmap for 1.3 (or 2.0?) Reducing the binary bloat Finish collection refactoring and look into potential places that can be folded (usages of dictonaries for common key types like string) Test and merge refactoring for container registration Improving performance (speed) of collection types Mostly done need some more detailed analysis and final verification
Sharing experiences and future roadmap Roadmap Prepare an alpha version for volunteers to test Any feedback will be appreciated very much! More internal refactorings and fixes for the DI container
Sharing experiences and future roadmap Honza Rame (contributor) Clean and reliable codebase Even though some registration bugs were cryptic at first, I was always able to debug the container and understood it well enough to fix the issue. Great interception and mocking. I learned to think about the architecture first, DI second. If you cannot write it in code the DIC won't make your life easier (pure DI). Migrating to NextGen wasn't that tought after all, the biggest challenge was the deployment and debugging as the tooling had its limits. The lack of tooling forced me to start with LeakCheck to ensure our codebase is leak-free. Working on Spring was fun and enlightening experience.
Sharing experiences and future roadmap How to contribute Feedback is always welcome! Feel free to report any issues you are finding or asking question If you open a pull request please make sure to do that based on the develop branch and not on master.
Sharing experiences and future roadmap Please share your experiences