Habanero & Software development
PeterWiles -
31 Mar 2010 03:47 pm
We’ve just recently released to the world version 2.3.2 of the Habanero Enterprise Application Framework. The download is available on the Habanero download page. This is the most stable version of the framework yet - the new version contains over 1000 new tests and has lots of bug fixes and enhancements over 2.3.1. Here is a description of some of the bigger ones:
- Added Support for MSAccess2007
- Dramatically improved the performance of loading collections.
- Added the IN operator to loading BusinessObjectCollections. This uses a very similar to notation to SQL where clauses. I will hopefully do a separate post on this on my Habanero blog
- Created a DataAccessorMultiSource, which can switch between DataAccessors based on the type loaded or saved.
Have a look at the change log page for a full list of the changes. We’re also busy restructuring the project and will soon be releasing a whole slew of related libraries which we’ve been developing the past few months. Stay tuned!
Software development
EricSavage -
04 Sep 2009 12:40 pm
If you try to access a record in an ADODB record set where the record does not exist, you’re likely to get an exception. The first question to ask of course is why you’re writing code for a field that might not exist, but certainly in my example, I was developing a class that was extensible and ready to be scaled depending on the requirements. To be more specific, it was populating the properties of a class once a record set had been filled by a fetch from the database. I had no guarantee that the SQL statement would meet specs, so I needed some error catching, just populating those properties that had corresponding record set fields.
Continue Reading »
Microsoft
EricSavage -
26 Aug 2009 04:36 pm
I experienced the following message while trying to write to an Excel file from C# code using Interop:
System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800A03EC
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at Microsoft.Office.Interop.Excel.Range.set__Default(Object RowIndex, Object ColumnIndex, Object )
The problem was down to inserting values at a zero index. Excel documents begin their range at 1, not 0. Now that’s a mindshift for a long-time zero-based programmer!
Web
EricSavage -
19 Jun 2009 11:18 am
I’ve been working on an application that uses Habanero and Visual WebGui (VWG) to provide a simple website that lets a department manage a list of facilities. At Chillisoft we use test-driven development to build robust applications, and we attempt to get our business, logic and presentation layer as close to 100% test coverage as possible.
I was writing tests for a section of code that calls through to VWGContext.Current.Session, which effectively allows you to store and retrieve session variables in the same way you do in ASP.Net. The trouble is that Current returns null because no web environment has been launched.
Continue Reading »
C# & Microsoft & Software
DeerashaSingh -
18 Jun 2009 05:46 pm
Use cases are an important part of the communication between a client and a developer, or a user and a business analyst. That much is evident, since they are written in plain English and describe the business process in detail from the user’s point of view. All this is great except these use cases seem to create a huge administration overhead. What’s that I hear you say? “That’s the Project administrator/co-ordinators job”? No, we don’t have such a luxury! (We chose premium filter coffee and an espresso machine over having a co-ordinator).
Continue Reading »
Habanero
EricSavage -
12 Jun 2009 10:43 pm
Habanero version 2.3.0 is the most stable and powerful version of Habanero available and the development team believes this version is going to knock the competition off the shelves. On top of a range of performance improvements, bug fixes, dependency inversions and extended test coverage, you’ll get new features like serialisation of BusinessObjects and a bunch of nifty UI tools.
What’s the Big Deal?
What sets Habanero apart from other data or ORM frameworks?
Continue Reading »
Software development & Web
EricSavage -
09 Jun 2009 10:20 am
Learning to use keyboard shortcuts is a double-edged sword. On one hand, you get fed up with how hard it is to pull off a task and you feel a certain sense of triumph when you find a shorter way of doing a repetitive task. On the other blade, becoming more efficient in what you do is part of the service to your employment contract. You’re getting paid to perform a quality service as quickly as you can.
So what then is “the most useful keyboard shortcut you never used”…
Continue Reading »
Web
EricSavage -
05 Jun 2009 02:37 pm
Active Reports provides the XMLDataSource option for sourcing your data from xml. My knowledge of all its ins and outs is not substantial, but I ran into two significant problems in a recent project which led me towards an alternative, innovative approach.
Continue Reading »
ASP.Net & Web
EricSavage -
05 Jun 2009 12:37 pm
Our client required a modification to an existing web solution that displayed confidential results in html format, which could be printed from the results page. The data was sensitive and was being forged, so we looked at adding a watermark. This required moving across to using reporting rather than html, so we started building up a report structure.
I was very pleased to find that Active Reports provided a WebViewer control, especially since it gave you the option of either displaying reports with an ActiveX option or with a Adobe Reader option. My assumption was the latter required extra processing to convert a document to PDF first. However, the ActiveX option requires the client user to have internet access to download the plugin, whereas the Adobe browser plugin can be installed from a downloadable installer that can be run on any PC.
Continue Reading »
.NET & Chillisoft & Databases & Microsoft
MarkWhitfeld -
02 Jun 2009 03:04 pm
I had a system deployed to a client site, and everything was working perfectly. The system administrator at the client site did a few things on the server, and next thing the Reports in the web site that use Microsoft SQL Server Reporting Services were giving an error.
Nothing had changed that should have affected the site! So, what could be causing the error?
The error in the report viewer was: “Object reference not set to an instance of an object.”
That’s an all too familiar error to anyone that has programmed in .NET and it is always slightly amusing to find it in someone else’s released program. The other day I got one from SQL Server Administrator when I clicked on something in the tree view on the left (just after I had freshly installed Reporting Services). Aha, so they are not infallible! A slight grin etched itself across my face. Well, anyway, the solution was a tried and tested standard Windows solution… Restart the PC. Amazing how often that works with Microsoft stuff hey! But in my case I was getting the error in my application, in a section that I had no control over, so how could I save myself this embarrassment?
Continue Reading »
Habanero & Software development
DeerashaSingh -
15 May 2009 12:00 pm
UI? BO? Huh? I think the other developers enjoy watching the colour drain from my face when I’m given a task, and pick my assignments accordingly. I’m just starting out in enterprise development; the only challenges I’ve tackled at university were algorithmic ones.
So I approach each new task with terror rather than confidence.
Continue Reading »
Web
EricSavage -
17 Apr 2009 02:40 pm
I’m currently using Excel XP (2003) and having been learning some tricks to get data out of HTML tables into an Excel document. I stumbled onto a cool feature last night…
Go to the Data menu > Import External Data > New Web Query. What you get is effectively a web browser that lets you enter a web page or even login and navigate to a page of your choice. The browser places little icons next to the tables in the web page, allowing you to copy that data across to your Excel spreadsheet. This option also comes up when you have justed tried to paste table data and get the little popup to do with formatting.
Also, if you’re interested, I see that in Firefox you can CTRL-Click on individual table cells and copy out the data from just those cells. I’m sure you’ve found like me that it can be tricky copying just the column or row of data you need from a web page, and this might help you one day.
Habanero
DeerashaSingh -
15 Apr 2009 10:31 am
The stage has been set and now its time to code… or is it? Habanero comes with Firestarter, a tool that will allow me to set up the Business objects and their relationships before generating code, user interfaces and tests. How cool is that?! Using the Firestarter tutorial as a guide I added Use Case Step, Use Case, Package and Project.
Continue Reading »
Ruby
EricSavage -
27 Mar 2009 05:57 pm
I have some Ruby script for you today. It takes a parameterised SQL statement and converts it back to a form you can dump into your SQL console/administrator/console and run.
While the logic of the script is reasonably solid, you may need to tweak it slightly depending on the number of spaces/brackets/commas/etc in your sql statements.
Continue Reading »
Habanero
DeerashaSingh -
06 Mar 2009 11:00 am
Hi I’m Deerasha more commonly known as Dee or, if you work at Chillisoft, Guji Dev.
Having recently graduated from university I’ve been thrust into the weird wonderful crazy world of custom enterprise software development. You can tell I have little idea of what I’m in for; I can’t even settle on an adjective to describe it.
While wading through a number of books and articles that are required reading for the field, I fell into my first project. Quite a disorienting experience, since commercial software development is so far flung from the cushy university purview. Suddenly terms like ‘Test Driven Development’, ‘Domain Driven Design’, ‘Habanero Enterprise Application Framework’, ‘Business Object Layer’, ‘Agile Software Development’ and ‘Inversion of Control’ began bouncing around in my head.
Continue Reading »
C# & Databases
EricSavage -
04 Mar 2009 01:05 pm
This problem comes up in certain circumstances where you use DATE_FORMAT in your sql query and use the output in your C# code. The problem is that a byte array is returned and a ToString on that value will result in “System.Byte[]“.
Continue Reading »
Humour
EricSavage -
03 Mar 2009 06:01 pm
Industry best practice asserts that a development house should have all its projects compiling on a build server. The advantages are clear. Firstly, you ensure that your project doesn’t have dependencies that are usually only found on a developer’s PC, such as Active Reports DLLs referenced from the GAC. Secondly, you can detect problems in a dependency chain. For instance, with our development of the Habanero framework, we can check whether changes in Habanero trigger compile and test failures in client projects built on the framework. This picks up errors in Habanero thinking way before the changes become concrete.
Lastly, a build server puts your work out on public display. You march in for the morning meeting and the project manager adopts his best Stalinist look and growls: “The Squeaky Wheels Management System is failing on the build server. What in flying peaches is going on?” When the laughter and booing are over, the truth is you’ve been shown up for submitting a system to the repository that has failing tests.
Continue Reading »
Databases & Habanero
EricSavage -
20 Feb 2009 06:14 pm
Application maintenance tends to be a cumulative experience. Each new bug report, however inconsequential, comes attached with increasing levels of resentment from the development. You fix, you create patch, you launch live, you accidentally break something else, you get phone call. Customer unhappy, developer burnt out. Developer changes jobs, application is passed around like a hot potato, and the next developer is even more likely to break things than the first, given their lack of knowledge of the application’s “unique problem solving strategies”.
Continue Reading »
Habanero
EricSavage -
17 Feb 2009 04:34 pm
A look at the new features list could make the v2.2 release look relatively minor. This is far from the truth. The relationship level has been almost completely rewritten, now supporting three variants of relationships: association, composition and aggregation.
The rewrite was born out of a continual conflict between expectation and implementation. Let’s look at an example to clarify where the confusion comes in. You have an Order and its OrderItems. It’s easy to understand that there’s no reason for an order item to exist if there is no order. Effectively, they’re one complete unit - you’d even imagine that an Order is useless without order items as well. The trouble with coding this kind of relationship is that your mind tells you you’re working with one conceptual unit, but you’re effectively coding for two.
Continue Reading »
Habanero & Humour
EricSavage -
27 Jan 2009 09:53 am
About a year ago we sent around a joke email about Habanero’s international adoption, which I thought would be nice to have on record. The joke gets reversed, however, because we are well into the middle of the first Habanero book. We’ve designed it as a reference tool for programmers wanting to enhance their skills by learning agile development techniques, including several software foundations like n-tier architecture, security, de-coupling and other critical concepts. These concepts are illustrated using Habanero, with hands-on examples of their implementation. Look out for a free draft copy released on the Habanero website this year.
Continue Reading »
Next Page »