Java D&D development

At a customer where I work there is a lot of Powerbuilder Development. Powerbuilder is 4GL development environment, you can quickly create simple CRUD applications with the tool. Every now and then we have discussions on it. It’s really quit funny as you can’t compare client-server development with web development or desktop applications vs web applications. The example that is always given is, how long does it take to create a simple master-detail app. Okay with the new Java web frameworks (or ruby on rails) this is also done very quickly.

With my VS.NET 2005 I have a good competitor for beating them in the client-server development area. Java however didn’t stand a chance. My DAO layer can be generated but for then building a simple Swing app, I would lose by a couple of miles. Recently I noticed the Netbeans 6 M9 however. I gave it a go and I was really amazed. I had my database ready and it took me less than 3 minutes to create a simple Master-detail Swing application. According to the documentation I could create a webstart deployement within a couple of clicks. I would say “GO SUN!!”

I do hope they will extend their default swing components palette. Sorry but the ones that are in there at the moment isn’t sufficient. Common people you don’t even have a default date picker component. Well maybe this is because the default java.util.Date in Java is just broken 🙂 But just fix it, I as developer don’t like it that I have to search for these components. Just put them in their. If you compare the VS.NET 2005 controls that are available by default with the Swing components. I can see why we still aren’t that far on the desktop as on the server.

Crystal Reports in VS.NET 2005

For a client I had created a couple of records. Problem was that they another company had developed stuff in Access and I had to integrate with that flat file. The Access file was located on a network share. When I developed it was on my local disk and when I deployed my Typed Dataset objects were updated automatically. The crystal reports however didn’t get updated. After a long time I finally found a solution for setting the database location @ runtime.

CrystalReport1 rep = new CrystalReport1();
TableLogOnInfo logOnInfo = new TableLogOnInfo();
logOnInfo =rep.Database.Tables[0].LogOnInfo;
ConnectionInfo connectionInfo = new ConnectionInfo ();
connectionInfo = logOnInfo.ConnectionInfo;
connectionInfo.DatabaseName = "Database";
connectionInfo.ServerName = "Server";
connectionInfo.Password = "pwd";
connectionInfo.UserID = "uid";
rep.Database.Tables [0].ApplyLogOnInfo(logOnInfo);

There’s one stupid thing here. I had made my application so that I gave my report as string param. The application that woud look in the application path for that report. This way I could update my reports without redeploying. Unfortunately if you do it like this I didn’t find a way to access the tables of my report. The reportview seems to not give you the actual CrystalReport object when you load it from a string???

Well in in the end it works, that’s all that matters!