Development - What Type of Application do you need?

The first decision you have to make about the system you'd like us to build for you is this:- how will you or your clients use it, and on what technology will it be based?

By this we mean do you want the app to run within Windows like any other Windows application (like say Microsoft Word)?. This offers the widest posible functionality and speed, but it assumes everyone who needs to use it is inside your office or can access your office LAN or WAN. It also makes assumptions about everyone's PC - if they all have a Windows PC, then this is still a workable approach, but if some staff have MACs, or need to use the software on their tablet, or Phone or over the internet then this isn't the best solution.

If the users of this application will be scattered around the country or the globe, and use a variety of technology platforms then a Web Application is probably best. However this can have limitations as well, particularly if you need to access equipment or other software on your network.

Is it important that the application run on a phone or tablet, or perhaps only on those devices. A native iOS or Android application may be appropriate here. In these cases its vital to discuss the range of devices that must be supported - sometimes a website crafted to operated on Phone or Tablet sized screens may be simpler.

Windows Applications

Do you need a windows application for in-house use, or to deploy as commercial software? Will it be used on the local PC, or run via Windows Terminal Server/Citrix? Do you have a preference for WinForms or WPF (PRISM) based development? Is the database going to be local, Microsoft Access, SQL Server or some other technology?

Our experience allows us to build for any combination of these requirements. More importantly, we can walk you through the decision tree that will establish the best technological approach for you.

We typically build new systems using C# and .NET in the latest version of Visual Studio, producing applications that can be installed directly or ones compliant with the Microsoft App Store.

Generic placeholder image

Web Development

Does your application need to be used by people around the world, around Australia, or perhaps just accessible from any browser within your company network? Will it be used by PCs, MACs, Tablets or Phones, or all of the above? Tell us what your required platform is and we will design a browser-based internet application to suit.

Do you need data encryption (SSL), user authentication, or maybe to restrict access in some way? We can build a system that follows best practice to protect both your data and your clients.

You name the web technology: Angular, Typescript, HTML 5, CSS 3, Bootstrap, MVVM, AngularJS, AJAX, Javascript, Knockout, JQuery, JQueryUI, ASP.NET Webforms, ASP.NET MVC, .NET Core - we can use it to build a system for you, or just enhance an existing system. We also have experience with a variety of third party development toolkits, and older releases of products and standards - don't feel constrained!

Do you require an end-to-end solution including local Hosting, or Cloud providers like Azure or AWS? We can help you choose a host that will meet your financial and operational needs.

REST/WCF and other APIs - Backend Design/Development

Creating the parts of an application that lie behind the scenes is just as complex as the interface that is presented to the end-user, whether in a browser, or running in Windows. And just as critical when it comes to meeting performance targets. Terms such as Client-Server, N-tier design, Web Services, REST, WCF, Cloud services and others all describe ways and technologies for designing how data is moved between the database, the server and the client device and back again.

They are also important because a system designed for a few dozen users simply won’t scale up to several thousand unless significant changes are made. This is why an online shopping site may work fine until a special sale begins, and then it promptly crashes - it wasn’t designed or planned for that kind of peak usage.

There are questions that we will discuss with you when planning your system that will allow us to avoid such problems.

  • How much data will the system need to hold? How fast will this grow?
  • What level of security is desirable, or mandatory?
  • Will this be used by a few people, dozens, hundreds, more? Will they use it at the same time, or at irregular periods through the day. Will be system be hammered at particular points in the day, or specific dates in the calendar (eg: end of the financial year, during sales periods).
  • Is there a pattern to the above usage, eg: only a few people entering/updating information, but many more just running reports.
  • What risk of clashes are there, where two different users might accidentally attempt to create or edit the same data at the same time? What kind of practical constraints exist which could be used to track or prevent this (eg: users in each state will only be concerned with data originating in their offices)
  • Performance expectations. Does it have to process a specific number of transactions per minute, or move a specific amount of data per second? Is this a guideline or a make-or-break issue?
  • Does the application (or backend) serve data just to your website/application, or will it be a general portal that anyone can access.
  • What level of security checking, login, administration is required?
  • Are the end users all working with the same platform, windows version, internet speed... or do we have to manage differences (eg: remote areas with low speed or irregular connections, while others have fast broadband connections, and others share a high speed connection in an office, which as a result can drastically slow down or become flaky when a lot of people are online or because of badly managed WiFi)

Secure Systems

Designing and building applications that must be secure and/or contain data that has to be kept private is straightforward so long as these expectations are stated up front.

But its important to discuss exactly what is being protected:

  • The identity and/or location of the User?
  • The data being managed by the application?
  • Moving data between online servers and your offices?
  • Or some combination of the above?

Answering the above questions leads us to discuss how your system will be administered:- how will new users be granted access? Who manages and authorises this? What degree of automation is expected here? Do we need to use open source standards like Identity Server, OpenID, OAuth 2.0, or perhaps what is available with your Cloud Service. Are there Government or legislative requirements which have to be adhered to? Are we talking just Australia or do we have to keep in mind requirements of other countries as well (eg: the European Union's GPDR)?

Working on secure systems usually requires our team to sign non-disclosure agreements. We are happy to discuss any such requirements with you.

Please note that security places an additional burden on your Acceptance Testing Team - to ensure that not only is the application working as expected, but that all security measures are operating exactly as expected. You may want to consider Penetration Testing to verify that the level of security required has been met.

Microsoft Access

Microsoft has been steadily downplaying Access in recent years, but it remains a powerful tool for small database application development, and its reporting engine is second to none, especially if you need your reports to be highly customised.

Remember than an Access Application can use local data, or data from SQL server, so the typical scaling problems with Access don't have to apply if the system is designed correctly from the outset. Having said that, it remains a toolkit best used with small teams.

If Access is included in your Microsoft Office license then its worthwhile considering it when deciding on the type of application you need.

Microsoft Office

Tell us what you currently do manually in Microsoft Office and we can help you automate it.

More importantly, would you like your Staff to just open say Word, select a template and have the new document populated by live data from an existing (or new) system? Perhaps have Visio draw you a new diagram from scratch based on a database and your selections? Or, have Excel link to a third party API to process information (eg: validate a list of postal addresses using an AMAS certified product). Or do it all, in every Office product?

Integrating Word, Excel, Access, Powerpoint and Visio with your own systems by writing templates, dedicated add-ins, wizards and various other techniques is a specialty of ours. We can produce these and provide full instructions for your IT dept on deployment, how to manage Office's security constraints, using code certificates, and even deploying add-ins commercially to the public. We can also ensure that your templates and add-ins work across a wide range of Office versions, from Office 97 to the latest Office release.

Would you like your Windows or Web Application application to output (report) data into Word, Excel, Powerpoint or Visio formats?

Microsoft Visio

Most people think of Visio as a tool that you work with manually to build diagrams, but it has the same sophisticated VBA backend as Excel and Word. This means you can automate anything, create templates, read and write database information, interactively create diagrams, and display forms to the user to gather data (about a diagram).

If you have systems that need to produce highlighly graphical output, especially large format output that programs like Word or Excel might baulk at printing - writing a template in Visio is a powerful alternative solution.

Microsoft Power BI

The tool that many offices rely on now for reporting is Power BI

Power BI skills are as important now as general Excel skills, particularly if producing reports based on a database is involved, or if you need to collate information from different data sources into a single set of reports, and want the result to look just as professional as a deck of Powerpoint slides, with the advantage of dynamically updating as your data does.

We don't propose replacing the staff you already have who are skilled at Power BI. What we can build for you is a Custom Power BI Connector that will link PowerBI to the database system we have written for you. This can access your system using the same levels of security, permissions and access control that your new system already provides. We can create the Export Queries that will provide data to Power BI which your staff use to produce any report you need from that point forward.

We can also show you how to take reports published online using Power BI and embed them inside a live web application. Other features such as using the PowerBI Gateway and Power Automate provide the means to automatically refresh reports. These and other features are constantly being updated by Microsoft, so if there is anything you'd like to do here, please ask so we can research it for you.