December
New things in Delphi 8 for .NET – Glenn Stephens
For the first time in a few versions, the Delphi language has been updated. In this session you’ll see the new features included as part of the Delphi Language. You’ll also see how we can port applications written in Delphi 1-7 to .NET applications, and we’ll also get a peek at some of the new features in Delphi 8 for .NET. Glenn’s presentation provided a good insight into Borland’s Enterprise Core Objects (ECO).
Glenn has provided the following links relating to ECO:
- Unleashing Enterprise Models with C# Builder
- Anythony Richardson’s Tutorials
- A reference for Object Constraint Language (OCL)
November
Introduction to FinalBuilder – Vincent Parrett
FinalBuilder is designed to automate tasks that you routinely do as part of your software development cycle. It allows you to quickly define a repeatable list of actions that can be executed in the same manner time after time. FinalBuilder cuts down build times by automating tasks that often take many laborious manual steps. Any manual process with more than one step is prone to errors, humans are generally not very good at doing repetitive tasks, often doing steps out of order or missing steps altogether. FinalBuilder can help you cut out those errors.
More information about FinalBuilder can be found here.
The Observer Pattern – Mathias Burbach
The session will explain the observer pattern and show an example of an implementation based on a ClientDataSet in order to better support cloned cursors. We will have a little “side-trip” to component development.
Slides and source code for this talk can be downloaded from here.
October
A few more of my favourite tools – Anthony Egerton
I have been referred to as a tool junkie by one of my colleagues. But I prefer to think of it as spending an inordinate amount of time finding tools which will save me time. Come along and find out my favourites, where the time has been wasted for you.
Anthony has provided the following links:
- Free Experts
- Castalia (Free or commercial Professional version)
- Component Bar
- Perforce IDE Plug-in
- Unit Expert (near the bottom of the page)
- OPXpert
- GExperts
- JCL Debug
- JCL Open and Save IDE dialogs with favorite folders
- JCL Project Analyzer
- JCL Thread Name IDE
- Commercial Experts
- ModelMaker Code Explorer Expert
- ModelMaker Expert (comes with ModelMaker)
- Clipboard History Tool (Not an Expert!)
- Clipmate
Getting your Oracle via Delphi – Mathias Burbach
We will explore some of the basic features of Oracle (e.g. Views, Stored Procedures, Packages, …) and how to use them from Delphi. The presentation will show different ways of talking to Oracle from Delphi and explain the advantages and disadvantages of those connection options. Finally we want to get your feedback about what you have done with Oracle, and why you chose Oracle versus MS SQL or InterBase.
September
An introduction to CodeRush – Lachlan Gemmell
CodeRush is the ultimate productivity toolset that binds seamlessly into the Delphi IDE. It has been designed to fully enhance Delphi’s built in editor and to provide the features and capabilities necessary to program at the speed of thought. Though Delphi provides a fine basic editor (which most people use because it understands dpr, dfm and pas file relationships), it does not provide the advanced features available with CodeRush or other third party editors.
Building applications with plugins – Chris Latta
Plugins allow you to build a modular extensible application framework which can be incrementally enhanced. Using plugins, you can ship customized applications from the one code base. In this presentation we look at when to use plugins, and what technologies can be used to build plugins and their advantages and disadvantages. An simple plugin framework will be developed as an example.
August
Why I’ll never create a data-aware application again – An introduction to BOLD – Glenn Stephens
Bold is fast to develop with, easy to maintain, object orientated, and gives you support for things that we all end up coding for hours. Remember Matthias’ presentation on an object versioned database – that can be done in Bold within a matter of seconds. Remember my session on Undo/Redo – Bold’s got that built in. Want true database portability – you can change from Interbase to Oracle to DBISAM without changing a line of code. And theres much more. Bold takes care of a whole bunch of major plumbing for you.
Debugging Hints and Tips – Anthony Egerton
90% of all developers say they have had bugs in code they have written. The other 10% are of course lying. This tutorial will be to discuss techniques that are useful in tracking down these bugs. I will be demonstrating some techniques I have found useful and I encourage people to come along and share their favourite debugging tips.
Some interesting tips and techniques were revealed by Anthony. He has provided the following links:
- Remote Debugging (Included with Delphi. Install from Delphi CD)
- Exception Stack Tracing
- JCL (Jedi Code Library)
- Exceptional Magic (Watch out for the popups)
- Eureka Log
- MadExcept
- Logging Tools
- OutputDebugString (Windows API call. Writes to the event log in Delphi)
- GDebug (Included with GExperts)
- CodeSite (Raize Components)
- CodeSiteEx (Free extension for CodeSite)
- IBSite (Free extension for CodeSite allows logging from Interbase SP’s)
- SQLSite (Free extension for CodeSite allows logging from SQL Server SP’s)
The results of the ADUG Sydney Survey are available for download here.
July
Creating an OLE DB driver for your Delphi data – Lachlan Gemmell
Using the Microsoft OLE DB Simple Provider Toolkit, a basic read-write OLE DB driver will be constructed allowing read write access to Delphi data and structures from OLE DB compatible applications such as Visual Studio, MS Office, and other reporting tools.
Handling Hierarchies with InterBase – Mathias Burbach
The session will cover design tips for storing hierarchies in InterBase and how to visualize them in you front-end. We will create recursive stored procedures to travers the tree and propagate changes into higher levels of the tree up to the root. We will look into the technique of pre-viewing those propagation in the front-end and how to resolve concurrency issues. Finally we will demonstrate how Borland’s TClientDataSet can help on the front-end side.
The slides and source code of this presentation can be downloaded from here.
June
C#Builder – Damien Bootsma
Designed to accelerate the application development lifecycle, Borland® C#Builder™ for the Microsoft® .NET Framework delivers a design-driven, pure C# development solution for .NET. Maintain design integrity throughout your development lifecycle. C#Builder is designed to improve team collaboration and enable integration of the modeling, development and runtime phases so you can deliver better software, faster. Offering technologies for flexible, high performance support and integration with enterprise databases – as well as direct communication with CORBA® and J2EE™ technologies from your .NET applications – C#Builder is optimized for enterprise development. C#Builder helps boost the productivity of your development team, the quality of your .NET applications, and the return on your technology investment.
Further information can be obtained from Damien. There are also discussion papers by Simon Thornhill on Octane and Delphi Q&A and An Open Letter to the Delphi Community.
An overview of ModelMaker – Chris Latta
ModelMaker is a CASE tool that has two-way code management with UML diagrams, design patterns, reverse engineering and refactoring. With its tight integration to Delphi, ModelMaker provides an ideal way to model your system and speed your development. In this presentation we take a look at:
- Importing existing code.
- Designing and restructuring classes with UML diagrams.
- Delphi Integration.
- Refactoring code.
- Applying design patterns.
- Commenting your code.
May
Iterators: Inside and Out – Malcolm Smith
This presentation will review the concept of iterators and how they can be used to simplify the repetitive task of traversing aggregates. We will look at creating very simple iterators up to polymorphic versions as well as distinguishing the difference between an internal and an external iterator. Implementation issues will also be discussed. Four demo applications will be presented during the discussion to reinforce the theory. I am also working on a small utility application that uses just about everything being discussed.
This presentation is now available from Malcolm’s web site. It includes a PDF document covering all aspects of the discussion, a powerpoint file as well as the 4 demos shown. Browse down to the bottom where the Delphi stuff has been added. I welcome all comments (since Delphi is not my native development environment).
An Introduction to Delphi’s Open Tools API – Bill Friedrich
The Open Tools API allows developers to add functionality to Delphi’s IDE. Some examples of additional functionality are:
- Adding new menu items.
- Adding wizards to the Object Repository.
- Adding new keystrokes to the IDE.
The documentation of the Open Tools API is notoriously terse, which makes the initial learning curve quite steep. This presentation is designed to help developers avoid the pitfalls of using the Open Tools API for the first time. Source code for all examples are available here.
April
User Centered Design for Developers – Glenn Stephens
The usabilty of an application is often one of the most overlooked parts of an application. While it will typically account for between three and six percent of a development project budgets, it is valued by end users as accounting for 35% of what the product means to them. We could all do with better designed applications. For end users perception is reality.
In this session, we will look at what makes an application usable. It isn’t neccassarily about what components to use, but instead looking at methods of achieving the best result for the end users. So we will look at achieving their goals, a little look at cognative psychology to understand how to make applications easier to use, guidelines, usability labs and other techniques.
Glenn’s slides can be downloaded from here. The slides don’t really represent what was fully discussed, but hopefully will help you remember the key points.
TClientDataSet Tutorial – Mathias Burbach
This tutorial will look into the way how the TClientDataSet is intended to be used. We will cover topics like re-sorting on the fly, using the briefcase model, aggregating columns and working with multiple cursors on the same resultset.
March
Creating objects from template code – Malcolm Smith
The concept of creating classes from templates almost certainly seems unnatural to Delphi programmers. Template based code is used to create a family of closely related objects that can be useful in place of sub-classing when the following criteria presents itself:
- You have common code for each class
- You want to perform compile-time type checking
- You like the idea of reducing another level of indirection
- The idea of no type casting in the implemented objects sounds cool
The files, document and slideshow can all be downloaded from here.
Inno Setup – Anthony Egerton
Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability. I will be telling you about my experiences with Inno Setup and the tools you can use with it.
February
FogBUGZ – Victor Rodrigues
FogBUGZ 3.0 is a system for managing software projects designed by software development guru Joel Spolsky. It works so well that your projects will practically manage themselves.
At the heart of FogBUGZ is a database of cases. A case can be:
- a feature request,
- a traditional bug report,
- or an email from a customer.
At any given time, every case is assigned to one person who must resolve it or forward it to someone else. Cases can be prioritized, documented, sorted, discussed, edited, assigned, estimated, searched, and tracked.
Because FogBUGZ is web-based, everyone on the team always sees the whole picture. Everything from customer feature requests to high level design discussions to tiny bug fix details is instantly searchable and trackable.
Every detail of FogBUGZ was carefully crafted with one goal in mind: helping teams create great software. Rather than giving you a big pile of features, designer Joel Spolsky has created a system that works with real people doing real software development. He even left out features that seem cool but cause more problems than they solve.
The presentation will cover most aspects of FogBUGZ as well as demonstrable integration with Perforce version control system.
January
Multi-tier Applications with RemObjects – Chris Latta
RemObjects is an extensible remoting framework that allows you to build scalable (and high performance) multi-tier systems in the simplest and most flexible way. In this presentation you will see:
- what RemObjects is
- what differentiates RemObjects from other solutions
- how to create a RemObjects server and client
- the advantage of doing remoting the Delphi way
- how RemObjects works with other components and frameworks
Delphi for .Net Preview Compiler VCL Update – Mathias Burbach
During this session we will look into new features of the Delphi for .Net Preview compiler. Especially the ported VCL controls and how to use them in an application for the Win32, Linux & .Net platforms.