Latest Posts
Blog server maintenance scheduled for December 22, 2008
After 11am Pacific Time, our blog server will be temporarily down as it gets moved to our new network infrastructure. We expect the down time to be 5 to 30 minutes. We apologize for the inconvenient timing, but we’re in the middle of migrating all our servers to our new infrastructure, and not all of it can be done in the middle of the night! (Or the weekend.)
We appreciate your patience as we migrate all our servers to our greatly improved infrastructure. I hope you’ve been noticing the improved performance in the last couple weeks, as we’ve been migrating portions of it over.
We’ll be all done by January 1, 2009. What a great way to usher in the new year!
Share This | Email this page to a friend
posted @ Sun, 21 Dec 2008 05:12:02 +0000 by John Kaster
Embarcadero products are Jolt Award finalists in several categories
Embarcadero products are finalists in four of the 19th Annual Jolt Product Excellence Awards! JBuilder, ER/Studio Enterprise Portal, Change Manager, and 3rdRail are finalists. We’ve won several Jolt Awards in the past and are very proud to be finalists again.
Change and Configuration Management
- AccuRev (AccuRev)
- Change Manager (Embarcadero Technologies)
- JetBrains TeamCity (JetBrains TeamCity)
- OpenMake Meister (OpenMake Software)
- Plastic SCM (Codice Software)
Database Engines and Data Tools
- Altova DatabaseSpy (Altova)
- Aqua Data Studio (AquaFold)
- ER/Studio Enterprise Portal (Embarcadero Technologies)
- Postgres Plus (EnterpriseDB)
- Vertica Analytic Database (Vertica Systems)
Development Environments
- Altova MissionKit (Altova)
- JBuilder 2008 (Embarcadero Technologies)
- Komodo IDE (ActiveState Software)
- ReSharper 4.1 (JetBrains)
- Servoy (Servoy)
Mobile and Web Development
- 3rdRail for Ruby on Rails (Embarcadero Technologies)
- Adobe Device Central (Adobe Systems)
- MITE (Keynote Systems)
- NetBeans (Sun Microsystems)
- Yahoo! SearchMonkey (Yahoo!)
The winners will be announced during the Software Development West 2009 Conference, March 9-13, 2009 at the Santa Clara Convention Center.
Share This | Email this page to a friend
posted @ Sat, 20 Dec 2008 01:25:33 +0000 by David Intersimone
RS2009 Help Update 1 released
Our year-end push has been the first Help update for RS2009, and it is now available. See Kris’s notes at http://dn.codegear.com/article/39139. Next we’ll add the CHMs, PDFs, and HTMLs to docs.codegear.com; look for those in the New Year! Happy Holidays, -Dee
Share This | Email this page to a friend
posted @ Fri, 19 Dec 2008 23:19:43 +0000 by Dee Elling
Time spent programming, reading, writing, etc in a "typical" day in 2009
On Tuesday March 7, 2002 Grady Booch invited everyone to tell him how much time they spent doing things, architecting, coding, testing, reading, stuff, of whatever else we do in a day. Grady reported the results of 50 people who reported what they spent time doing on that Tuesday:
- Analyzing -16%
Designing - 14%
Coding - 16%
Testing - 10%
Phone - 3%
Reading journals and email - 7%
Productive meetings – 10%
Useless meetings – 7%
Other “stuff” – 17%
Since we are getting near the end of 2009, it would be great to hear from community members and SipFG blog readers about what they do on their typical day in 2009.
Today for example, I spent the following time at work after getting in to the office in Scotts Valley at 7:15am:
- Making strong coffee in the coffee room - 5 minutes
- Coding three Delphi apps to analyze customer registration data - 120 minutes
- Altering a reporting database for the same data analysis - 30 minutes
- Email - 30 minutes
- Reading comments on my blog - 20 minutes
- Writing this blog post - 30 minutes
- Call with my co-Chief Evangelist Greg Keller - 30 minutes
- Filling out expense reports before year end for trips to Europe/San Francisco and my cell phone bills - 20 minutes
- Eating lunch at my desk while reading some technology news on DDJ.com, CNN, Slashdot Developers, Internet News - 20 minutes.
- Reading Pawel Glowacki’s "Building and Consuming Web Services with Delphi 2009" blog article - 10 minutes.
- Reproducing Pawel Glowacki’s Web services example from his blog post - 30 minutes (had a few problems with my Dell notebook’s IIS setup running Windows Vista).
- Reading items on DelphiFeeds.com - 10 minutes
- Reading posts on the Embarcadero CodeGear public forums (I use XanaNews, built with Delphi) - 30 minutes
- Other stuff (time flies like an arrow) - 45 minutes.
And it’s only 2:15pm. I’ve got at least 4 more hours to go before I go home :)
What did you spend time working on today? How does it compare with your typical day in 2009?
Share This | Email this page to a friend
posted @ Fri, 19 Dec 2008 22:29:48 +0000 by David Intersimone
Foro en español para usuarios de Delphi para PHP
Para que los usuarios de Delphi para PHP y VCL para PHP podamos realizar consultas sobre los productos en español, hemos creado este foro específico:
http://www.qadram.com/vcl4php/forums/viewforum.php?f=14
Esperamos que os sea de utilidad.
Share This | Email this page to a friend
posted @ Fri, 19 Dec 2008 10:36:07 +0000 by José León
Building and consuming web services with Delphi 2009
Do you remember that Delphi 6 was the first IDE in the market with Web Services support? This trend continues and Delphi 2009 supports building web service servers and clients:-) In this post I’m going to describe all steps neccessary to build simple web service server and client applications in Delphi 2009.
Building "Simple Calculator" web service application in Delphi 2009
The main difference between building ASP.NET web application and web services in Delphi 2007 and native web services in Delphi 2009 is that you have to manually create a virtual directory and physically deploy the web service application.
Creating a virtual directory
The first thing to do is to make sure that you have IIS installed. I’m currently using Windows XP. In default XP installation the IIS is not installed by default. In order to install it you need to go to "Add or Remove Programs" Control Panel aplet, click on the "Add/Remove Windows Components" and make sure that "Internet Information Services (IIS)" option is checked.
Once we know that IIS is installed, the second thing is to create a virtual directory for the web service application. This is done with "Internet Information Services" applet that you can find in Control Panel "Administrative Tools". Right click on the "Default Web Site" node and select "New | Virtual Directory" from the context menu.
This will launch "Virtual Directory Creation Wizard". Click on the "Next" button and enter the logical name of the virtual directory. For this example I’m going to name it "Delphi2009WS".
On the next screen you need to specify the physical directory. The default location for virtual folders is under "C:\Inetpub\wwwroot" so I have created a new "Delphi2009WS" directory there.
The last screen in the wizard is for specyfing access permissions to this virtual directory. Make sure to check "Execute (such as ISAPI applications or CGI)" option.
Creating a new "SOAP Server Application"
The ground work is done. Now it’s time to start Delphi 2009 and create a new Web Service application. Double click "New SOAP Server Application" in "New Items" dialog available from "File | New | Other" menu.
This will launch the new web service application wizard. The first choice to make is how the application should be implemented.
I have selected to create a CGI application. This is the best type of application during the development because you do not have to restart the IIS every time you want to rebuild your application. Selecting "CGI" means that our application will be a Windows executable. This means that for every request to our web service application the IIS will have to execute our program. Launching a new OS process is an expensive operation, so in real life scenario it is better to implement web applications as ISAPI DLL, which is loaded once into the IIS process (inetinfo.exe) and stays there until the IIS is restarted.
But how do I convert CGI application into ISAPI/NSAPI library later? In fact the best solution is to add to a project group another Web Service server application, and go for ISAPI. In this way you will have two web service applications (one CGI and one ISAPI) in a Delphi project group and they can both share the same units that make up the web service application. Just add all the files from the CGI project to the ISAPI project. In this way every time you "build all" you will have both applications created with exactly the same logic. During development it is easier to use CGI, but at the end you will want to deploy as ISAPI DLL.
OK. Let’s continue with the wizard. After selecting the application type the wizard will ask if we want to create the interface for the application.
Click on "Yes" and then the wizard will display "Add New WebService" dialog where you can specify service name and also service activation model ("per request" or "global"). I’m going to use the default "per request" activation model and enter "SimpleCalculator" as a name for the service. After clicking on the OK button the wizard will add three new units to the project. Click on "Save All" in the "File" menu. Accept default names for "SimpleCalculatorIntf" and "SimpleCalculatorImpl" units and save the third unit as "uWebModuleMain" and the whole project as "Delphi2009SimpleCalc". Delphi Project Manager will look something like this:
At this stage when we hit compile we will get a CGI executable file that is ready to be placed in the virtual directory. Of course we have not yet implemented any functionality. To make deployment easy we have two choices. You can save all units and project directly in the virtual folder physical directory. This is easy but not elegant. The better solution is to specify the "output" directory in the project options as our physical folder that we have used for virtual directory. In this way we will not "polute" the virtual folder with Delphi units and project files, but every time we compile Delphi automatically will put the resulting executable in the virtual directory.
If you are deploying on XP then you are done. The XP comes with IIS 5.1. There are also chances that you might want to deploy on Windows Server 2003 which comes with IIS 6. In this case you need to do one more step. In the "Internet Information Services" aplet there is additional node called "Web Service Extensions" where you need to explicitly add our web service executable to the list of binaries that are globally allowed to be executed.
Implementing web service logic
This is our next step - to implement methods in the web service that will be called by client applications. To keep this demo simple I’m only going to implement "Add" and "Subtract" methods that will accept two integers and return an integer.
All methods to be called by web service clients needs to be declared in the "interface" unit and then implemented in the "implementation" unit. Make sure to add "stdcall" to every method in the interface, because this is required by the underlying implementation.
The interface unit:
… and the implementation unit:
Compile project one more time and we are done. If you now open our web service test page in the browser you should see "Add" and "Subtract" method listed under "ISimpleCalculator" interface.
Somebody might ask: how this test page was generated? If you open the main web module of our application you will see that the wizard has added three components to the form.
These components are what makes this web application "a SOAP web service" application. In fact it would be also possible to start from plain "Web Server Application" (in "Delphi Projects - Web Broker" category) and add these components and units manually. The main web module to the Web Broker application is what is the main form in the VCL Forms application. Any request that arrive from HTTP clients are sent to WebModule actions. If the action matches the request path info and HTTP verb (here called "MethodType") than it is processed. In the case of a web service application all requests without any path info are processed with the default action called "DefaultHandler" that delegates processing to the "WSDLHTMLPublish1" component that is generating the test page on the fly.
It is often considered a good practice to change a default target namespace for SOAP messages that are exchanged between clients and servers to something different that http://tempuri.org/. This can be done via TWSDLHTMLPublish "TargetNamespace". I have changed the target namespace to http://demos.embarcadero.com
In order to be able to consume our web service we need to have some a describtion of what our service do and where it can be found. This the role of the WSDL document that can obtained dynamically from running web service. If you click on the [WSDL] link on the test page next to the "ISimpleCalculator" service, you will see the contents of the WSDL that can be obtained via the "http://localhost/Delphi2009WS/Delphi2009SimpleCalc.exe/wsdl/ISimpleCalculator" URL, where the first part of the URL is the server where application is deployed (in my case "localhost"), the name of the virtual directory ("Delphi2009WS") and the name of the executable "Delphi2009SimpleCalc.exe". "/wsdl/ISimpleCalculator" is a logical path to a resource inside our web service application.
Building Delphi 2009 Web Service client application
At this stage we have a Delphi 2009 Simple Calculator web service application deployed to the IIS. The next step is to build a client for it. The easiest way of building a web service client is to run "WSDL Importer" wizard. Just create a new Delphi VCL Forms application, save all and double-click "WSDL Importer" wizard.
Note that the "New Items" dialog is context sensitive. When there was no active project the "Web Services" category contained "SOAP Server Application" only and now, when there is an active Delphi VCL Forms project in the IDE, it also contains "WSDL Importer" icon.
All you need to do is to enter a URL to the web service into the wizard and click "Next".
On the last screen of the wizard you can preview the contents of the proxy unit that wizard is going to add to the project.
When you click "Finish" the wizard will a new unit to the project with web service interface and one global function that returns a reference to the interface. In order to use the web service methods in code you can just call a generated "GetISimpleCalculator" function and access "Add" and "Subtract" methods.
The running client application looks like this:
Creating a client application without importing WSDL
If you look into the code generated by the "WSDL Importer" wizard you will notice that the definition of "ISimpleCalculator" interface is exactly the same like in the "SimpleCalculatorIntf" unit, that is a part of server project. In fact if the server and clients are both implemented in Delphi, then we could skip the "WSDL Importer" wizard and use the unit with interface definition in the client application. We will also need to use THTTPRIO component. In the wizard generated code this component is created dynamically and then it is typecasted into the interface.
Summary
Web Services as described in this post are only one of the method of doing client/server, or in general distributed computing, systems. Here we are using HTTP protocol for communication and SOAP protocol for exchanging XML messages.
Some feel that XML is too heavy and prefer to use JSON for communication. The HTTP protocol sits on top of the TCP protocol. RAD Studio 2009 introduced DataSnap 2009 architecture for building client and server applications that communicate using JSON and TCP protocol.
That’s the subject to post about in the New Year 2009. Merry Christmas and a Happy New Delphi Year to all of You:-)
Share This | Email this page to a friend
posted @ Thu, 18 Dec 2008 15:18:22 +0000 by Pawel Glowacki
Random Thoughts on the Passing Scene #96
- Some folks have been asking questions about what the requirements are for posting comments on our blog server. John Kaster put together a nice article on it. Key point: All of our emails are opt-in. We don’t send you emails unless you specifically ask for them.
- From 16 December through the 15th of January, the FastReport guys are giving a 25% discount on all their products and licenses. Find out more at http://fast-report.com/en/new_year_discount.html.
- Could have easily been 50, but they made me stop at 10.
- What religion is Delphi?
- Oh, good grief. That is just terrible.
- I have a new email address: nick.hodges@embarcadero.com. The codegear.com address will still work for a while, but it will eventually stop working.
Share This | Email this page to a friend
posted @ Thu, 18 Dec 2008 02:00:55 +0000 by Nick Hodges
What programming and domain specific languages do you use every day?
In the course of a typical day I use a range of programming and domain specific languages in the programs I build, the demos I create, and the presentations I give. If we were just talking about the most used programming language for any one developer, each of us might mention C, C++, C#, Java, Delphi, VB, PHP, Python, and Ruby as our preferred language.
In the earlier years of computing (say, before the 1980s) we might list one higher level programming language that we use along with some assembly language programming for low level work. Today most programmers use many more languages. Neal Ford calls this "Polyglot Programming".
For myself, in my typical day (is any day really "typical" for a programmer?) I use a combination of Delphi, UML, C++, JavaScript, HTML, SQL, and XML. In a typical week I would add PHP and Ruby to this list.
What programming and domain specific languages do you use every day?
Share This | Email this page to a friend
posted @ Wed, 17 Dec 2008 15:46:31 +0000 by David Intersimone
"A year in the Life of Delphi" webinar with Nick Hodges
Nick had to wake up early today to do "A year in the Life of Delphi" webinar for Delphi developers from European timezone. It was excellent to hear some of the future directions of Delphi discussed. Of course these are only plans and "subjects to change without notice" but it gives the confidence in the future of Delphi. The year 2009 is going to be "transitional" for Delphi native compiler. Delphi Team is looking at completely new cross-compilation technology, the ability to target multiple backends natively and expanding RTTI. This will mean doing 64-bit afterwards, in 2010, to get everything right. It was also extremaly interesting to hear about plans to extend VCL to support Touch and Direct2D technologies. On the DataSnap front the plans are to give Delphi Prism the ability to build servers and also possibility to encrypt and compress DataSnap on-the-wire protocol.
Somebody asked about Delphi 2009 Feature Matrix. Here is the link.
Share This | Email this page to a friend
posted @ Tue, 16 Dec 2008 16:23:20 +0000 by Pawel Glowacki
Delphi 2009 Update 2 verfübar
…auch in Deutsch.
http://dn.codegear.com/de/article/39108/
Delphi und C++Builder 2009 Update 2 aktualisiert das Datenbank-Pack von Delphi und C++Builder 2009. In diesem Update sind nur datenbankrelevante Korrekturen enthalten. Update 1 enthält Korrekturen für das restliche Produkt. Update 1 muss separat installiert werden.
Ihr
Matthias Eißing
Share This | Email this page to a friend
posted @ Tue, 16 Dec 2008 13:20:08 +0000 by Matthias Eissing
Server Response from: dnrh1.codegear.com


