Tuesday, 20 December 2016

Vertical market developers should only have to specialise in their vertical market.

Supplying a software solution for a vertical market is a demanding undertaking. Often the potential client base is very restricted and the margins available are small. This is even more so if their product targets a niche group.

Many of these packages were lovingly created by someone within (or working closely with) the market in question. These people saw a problem and believed, with their unique experience, they could find a solution.
More often than not the people who forged these solutions are experts in their field, not in the more generic fields of stock control and accounting. They may know how to use an accounting system but this is not their area of speciality.
This has generally led to two situations, the specialist creates their own accounts system which takes a lot of time and resources or they use an established third party product with its costs, limitations and demands (for example staff certification).
We believe we have a third solution.....
A flexible free, copyright free open source accounts package.
A solution that is reasonably tailorable out of the box but one that can be amended (even re-branded!) by the vertical market solution provider in any way they want! If they just want the menuing system, take the menuing system! If they want to build their product seamlessly into our system, go right ahead!
What does this give them?
  • Allows them to focus on their specialist area(s). 
  • Gives them the flexibility to amend the system to fit their needs. 
  • Reduces development costs as no licence fees and no backdoor staff certification.
  • Reduce the costs passed on to their customers making them more competitive or increasing margins.
  • No risk of the system becoming unavailable forcing them to redevelop onto another platform.

Data not displaying in Datagrid but columns do when using C#, WPF, XAML and a Struct collection for the itemsource

In the ossAccounts system I had the following local struct defined to make it easier to display some information (linq left outer join) on a DataGrid.

        public struct ListItem
        {
            public int              OrganisationAnalysisCodeId;
            public string         Code;
            public bool           Used;
            public DateTime  StartDate;
            public string         StringValue;
            public float           NumberValue;
            public bool           BoolValue;
        }

While the DataGrid could see the columns and the number of rows all the cells remained empty!

After a day trying everything I could think of I eventually found that adding the {get; set;} to the end of each member sorted out the problem.

        public struct ListItem
        {
            public int              OrganisationAnalysisCodeId  {get; set;}
            public string         Code  {get; set;}
            public bool           Used  {get; set;}
            public DateTime  StartDate  {get; set;}
            public string         StringValue  {get; set;}
            public float           NumberValue  {get; set;}
            public bool           BoolValue  {get; set;}
        }

I am guessing that it has something to do with accessibility levels but that is purely a guess.

Anyway, I hope this will spare someone from hours of headbanging.