Just like the title suggests: PostgreSQL 8.0.2 has been released. Read the announcement here.
NickMalik has a very nice article about Feature Driven Development (FDD) as opposed to Work Breakdown Structure-development (WBS). A must read (it’s not that long) for every developer and IT-projectmanager out there.
When you think about it: when you develop via the principle “write a test first” (I can’t find the term for it now, brains already in hibernate-mode!), it’s basically FDD. You test a feature, don’t you?
My little C# project is coming along just fine. The basic idea is to create a synchronisation tool between an ERP application and Outlook, since the manufacturer of the ERP application has no plans on creating a “synchronize with Outlook” functionality in the near (and not so near) future. Since I don’t want to get into any legal stuff, I wanted to create a one-way sync-mechanism, basically a download-from-ERP-to-Outlook. And since I was in need for some project to learn C# better, this was the opportunity.
Since the ERP application has an ODBC DSN defined on the client to create a connection from MS Word to their data, I decided to use that to connect to the database. ODBC is not the fastest and most elegant thing around, but it’ll do the job just fine.
The main form is just a simple form with a textbox for the employerscode and two datefields, to specify the period that needs to be downloaded to Outlook. The functionality sofar:
– Employee-code is checked against the database
– Timespan is 7 days by default: changing the from-date, the to-date will be 7 days later
– Pressing sync will get all appointments in the daterange, and search for all attendees (other than the employee) of the appointment
What needs to be done to enter the Alpha-stage:
– Convert the found data to an Outlook.AppointmentItem and insert it into Outlook
– Have seperate time-fields (by default 00:00:00 and 23:59:59) to be able to enter a narrow timespan, without the user having to specify the time in each of the date-fields
Things I learned from working with C# (VS.NET 2003) are:
– Case sensitivity. Needs to get used to, and can be very annoying. Odbc is something else than odbc. When the compileroutput lists the error, is sometimes hard to spot what is wrong.
– Functions need not be declared before (above in the sourcecode) you use them. This is different from (object)pascal. But it’s nice: you can keep things together, without the need for a specific order. Alphabetically will do just fine.
– I’m not sure if it can be done in (object)pascal (never tried it), but variables declared within curly brackets have a scope only between these brackets. Very nice for dummy-variables, and you don’t want to make up another name, just because you’re still in the same function/procedure. If it’s a meaningless variable, using the same name is just fine.
– Compiler directives are nice. Having the ability to switch between debug and release with one buttonclick, makes it very usable to include lots of debugmessages, that just won’t show up when you build/run the release-version. No more forgetting about that one ShowMessage when releasing your work to the client.
I’ve just been bitten by private declarations. When doubleclicking a component on a form, let’s say a button, you will be given a framework for the code and you can type what you like. In Delphi, you can reference libraries (without having to use the full prefix) that are in the uses-list. In C# you can not. The generated event (button1_Click) is defined as private, which (I have to look it up for the exact scoping) means that you cannot just use the objects/functions that you thought you’d included by “using” them.
Solution (it’s very simple, I know, but one has to learn one step at a time): create a new function, declared as public, and call that function from the event.
Things are not as bad as Microsoft’s website makes you believe. Read Larkware’s explanation, and be happy. Or less sad. Whatever.
Yeah! I just created my first add-in for Word. When I press the button on the toolbar, a form comes up that will do the main interaction with the user. Since it’s WRap, the first thing the user will be presented with (for now) is to choose between Design or Run a report.
A nice feature of VS.NET, that I will miss if I buy Visual C#, is the deployment. The wizard created a setup-project in the solution that will install the add-in. I changed some settings to have it correctly installed on my machine, but I have to create a decent (and conditional) setup later. Installing a Word add-in is of no use when you don’t have Word, now is it? With Delphi I used Inno Setup, perhaps that can be used for C# projects as well.
Of course, just when I am looking to buy VS.NET (or just Visual C#), Microsoft announces the new VS.NET versions and the new MSDN subscriptions. Grab on to your chair, make sure you can’t fall, and click on this link to view the new options/prices.
What the hell happened? MSDN Universal ($2800) used to cover “everything”, but if you want everything now, you need to shell out $11000 (and $4500 renewal). Geeez. The only thing close in price is VS.NET Pro + MSDN Premium ($2500), but that would mean no team-support whatsoever, as you can see here.
Visual Studio has support for VB.NET, C#, J# and C++.NET. But I’m only going to use C#. So I think I’m going to look into Visual C# Standard. I lacks remote debugging, and most of the deployment options of Visual Studio. And MSDN Library says that it lacks:
The “server” node in the Server Explorer.
* Developers will commonly use this feature to visually design server-side solutions.
I’m not sure if I’m going to miss this feature. Update: I’m not going to miss this feature. It’s the database-connections treeview. Handy feature when you have it, but I won’t miss it when it is not.
Visual C# Standard only costs US$109.
As you guys (any galls around?) know by now, I’m evaluating what to upgrade to. Currently I’m a Delphi 6 Enterprise user, and have the choice of upgrading to Delphi2005 or Visual Studio .NET 2003 (or 2005 if I wait any longer…) You’ve read my ramblings and I’m stabilizing in my choice (which is in slight favour of VS.NET on features).
When evaluating, one has access to Borland’s Delphi2005 Architect edition (available as download), and to Microsoft’s Visual Studio .NET 2003 Professional (available in seperate ways, I got mine from the free Microsoft Visual Basic .NET Resource Kit DVD).
Both Delphi and VS.NET come in several flavours, Delphi’s trial is their biggest, VS.NET’s is Microsoft second biggest (they also got an Architect version above Professional). When I’m trying either product, there is no way in the world that’s gonna tell me: you still can cope with the cheapest version, still the cheapest version, oh oops, now you need the professional version, still professional, compile->run, professional version is what I need for this kind of project.
Is there an analysis tool for either Delphi2005 or for VS.NET projects to tell you which version one needs? This tool (if it exists) would serve another goal: if you’re going to release your source (for whatever reason), you can tell the users: you need at least this-and-that version of the IDE.
Yesterday, I managed to create a button in Microsoft Word (with the highly sophisticated functionality of displaying ‘you pressed the button’ when … you press the button), something I’ve been unable to pull of in Delphi for quite some time. Automating Word (basically creating an Ole-object and controlling it) is not so difficult as it might seem when you start, but doing so from within Word (read: creating an add-in) is not something very well documented if you’re using Delphi.
I found an article in the Microsoft Knowledgebase via CodeProject that explains how to create a very simple add-in. And that was all I needed, and all I have been searching for quite some time now.
The generated add-in (DLL) must be registered (regasm) and be put in the addins-directory (e.g. c:program filesmicrosoft officeoffice11addins) and that’s about it.
WRap (Word Rapportage, Dutch for Word Reporting) is a working title, so I need to think of something that’s not already there in the crowded land of reporting tools.