DELPHI and WANT or NANT - delphi

We use cruise control .net to do our Continuous Integration in our Delphi 2006 application. We use a setup similar to the one described here.
QUESTION:
1) What is the best scripting tool/language to use implement the build script?
2) Are there any advantages of using WANT over using NANT?
(NOTE: D2006 is not compatible with MSBuild)

I never used WANT, but NANT works fine with any Delphi version. I presume NANT is also better supported and has more features you can use since it is used more widely then WANT.
BTW: You can still use MSBuild and call dcc32 if you want. In that way it is the same as NANT. If you move to Delphi 2007 MSBuild has a bigger advantage over NANT since the Delphi projects are in the MSBuild format. But even then you can still use NANT as a buildscript. It will just call out to MSBuild to do the separate builds.
Another build tool that is worth checking out is FinalBuilder. It is very complete and knows Delphi. It should, since it is build using Delphi. They also offer a CruiseControl like Continuous Integration solution. The drawback is that FinalBuilder is not free.

Only couple of days back I managed to implement a complex NANT scripts to compile our projects (which uses d7-2009 compilers, VC++ 2005 and subversion). It was very easy to setup and work when used with NantGui .Unlike MSBuild you dont have to have certain version of .NET installed in your system.
For compiling the projects using dcc32, have a look at the delphi3000 article

I used XSL to generate the Cruisecontrol project file automatically. We had a large project with many Delphi applications which already used a common Ant script. So generating the CC project file using a script was a natural solution.
Another Continuous Integration solution which works with Ant (and many others) is TeamCity. It is free up to a certain number of build agents / projects. The user interface is awesome.
I successfully use Ant for many years now for all kinds of Delphi projects, from small component libraries to multi-project multi-tier applications.

Related

How to integrate an application using dependencies on a build server?

I would like to activate continuous integration for a Prism application on a TFS build server. Actually the build controller is not able to compile the application because it does not have the Prism Library. Prism is registered in my Visual Studio on my developing machine and the project simply reference it. I was wondering if I should checkin the library within the project or should I install the library on the build server.
So what practice do you use to integrate application using dependencies on a build server?
In general, checking in the necessary Libs provides you with the advantage that setting up a new build controller requires less time.
We use a mixed approach on the matter:
- log4net, Rhino, NHibernate etc reside on a shared Dir within the source control
- Other packages that require setup and/or licensing (Infragistics, NCover etc) are installed on the build controller
I have only very basic knowledge on Prism, by 'Prism lib' do you actually mean the 5 Microsoft libraries
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.UnityExtensions.dll
Microsoft.Practices.ServiceLocation.dll
Microsoft.Practices.Unity.Silverlight.dll
If yes, we would have placed them definitely within the source control
I finally opted for a solution based on pantelif idea.
Instead of manually checking in and managing depedencies manually, I used NuGet to reference packages. Firstly it is perfectly suitable for source control as it checks-out any file required to build the project. Secondly it supports easy updates of the libraries.
Thanks for your help.

How to use TFS 2008 with Delphi 7 via MSBuild

Has anyone had any luck using MSBuild with Delphi 7 as part of a TFS 2008 (Microsoft Team Foundation Server 2008) integration? Curious if it is possible, and if it is, what is necessary to set it up.
Thanks!
Update: I am aware that the later versions of Delphi use MSBuild, but it would appear for right now upgrading isn't an option.
To use MSBuild with Delphi 7, you must first produce a representative .dproj file bearing the correct XML markup (as seen in later versions of Delphi). If you construct them properly, then MSBuild will recognize them, and (as directed in the XML markup) will place the appropriate calls to the Delphi 7 compiler.
It's simple enough, but it takes a lot of effort to manually produce the .dproj markup!
EDIT: This guy offers an apparently-functional automated solution to this problem, available on request!
You may write a MSBuild task that invokes dcc32.exe (delphi 7) and passes to it the appropriated commmand line (dpr file name). I wrote a similiar task for NANT in order to integrate delphi 7 with cc.net

Mercurial plug in for Delphi

Is there a project or project in progress for creating a Mercurial plug in for Delphi XE?
Failing that, where can I learn more about creating one?
Delphi XE has SVN support and the integration is an open source project, you can get it's code from here
I read somewhere that they made it generic so it's not tied for SVN, but they add the SVN support because it's more popular and as starting point.
also as Uwe Schuster blog (who developed the version insight for Delphi XE), both Git or Mercurial support are planned.
Q: Will there be support for Git or
Mercurial? A: Support for both is
planned and first tests have been done
in the past months, but I don’t have a
timeframe. (Remember I do have a full
time job, work on Version Insight in
my free time and it’s not the only
thing)

Group project via Team Foundation 2010

We will be doing a database driven logistics system for our Software Analysis and Design course. What we want to do is to work on the project simultaneously so that we can finish the project earlier. Is TFS the right tool for this? If yes, how do we start? What are the steps to set up the TFS? We use VS 2010.
Thanks.
This is a very broad question. TFS is an excellent code repository that does allow for multiple developers to have a centralised code base (which sounds like what you are after).
The first thing you will need of course is the TFS 2010 installation disk and ideally a separate box to install it on. Although the installation and set up can differ slightly on differing OS, i would recommend following the installation guide here and posting any specific and more detailed questions as you come across issues.
Is TFS the right tool for this: Maybe. It may be a bit much overhead to use for a course.
How do you start: If you have Visual Studio 2010 Ultimate, TFS should be included. Everything is installation wizard based, and the install (can) give you everything you need. For what you want, a stand-alone installation using SQL Server Express should be fine.
If you're looking for something lightweight that you all could use for source control, you might want to consider some of the git/svn hosting services (e.g. http://unfuddle.com). There's no direct integration with Visual Studio without a third-party tool, but it will give you the basics of being able to share source code among your team.

Delphi: Moving away from VSS

We are team of few Delphi developers who have been using VSS since years (I know it's a pity), but we don't use any of the advanced features of VCS, so it was working fine in many cases (but some times it was driving me crazy :( ).
The good thing that we have with VSS that we use third-party plug-ins to integrate VSS with Delphi, which is working great, but now when our projects becomes larger, and we would like to move a way from VSS.
I have looked at few other VCS (free and commercial) and found most of them seems be made for Linux guys, and you have to use command line for many admin work(I know I'm windows guy :P).
What I'm looking for the new Version control that it should be easy to use and to maintain and Integrated nicely with Delphi IDE (D2007), or at least have a good UI for the Admins an developers.
Just use SVN and an excellent TortoiseSVN client which integrates with the Windows Explorer.
P.S. Found this question: What is the best set of tools to develop Win32 Delphi applications? and this Delphi IDE/TortoiseSVN integration tools in one of the answers: http://delphiaddinfortortoisesvn.tigris.org/
You should at least take a look at JVCS. It integrates with the Delphi IDE, it's written in Delphi and is open source, and you can choose from a number of databases including Firebird to store your archive in.
There is Team Coherence (http://www.teamcoherence.com/) which is written in Delphi and integrates with the IDE very well. We still use it. Support is patchy though.
Most people seem to be moving to SubVersion though.
Team Coherence is a good choice. They just released a new client, so it looks like support is alive and well.
Unless you are directly heading to SVN (which I wouldn't recommend, if you're thinking on something free go to Git or Mercurial) check Plastic SCM. Find a couple of Delphi specific tutorials here:
http://codicesoftware.blogspot.com/2008/06/branching-and-merging-with-delphi-part.html
http://codicesoftware.blogspot.com/2008/06/branching-and-merging-with-delphi-part_02.html
Our Delphi team recently (last year ) upgraded from VSS to Perforce which is an absolute joy to work with. It is expensive but is well worth it. It makes source code control one of the tools of your trade rather than a chore or a hinderance. It has good GUI tools, a great commandline when required and there is a free Delphi IDE integration available online.
It does take a bit of getting used to, but is worth putting in the effort when you get to the point where you can create branches with abandon and merge changes knowing you dont ever have to worry about losing any changes ever. Its fast, efficient and a pleasure to use.

Resources