User Guide

Understanding the Benefits of the Sage Accpac ERP Architecture
7
Sage Accpac ERP
Technology
Claim: Using Microsoft SQL Server for a database means a
product has an architecture.
Microsoft SQL Server is a database. A product that uses it may use it well or poorly. Using
Microsoft SQL Server-specific features to tune the product means that the product probably runs
well on SQL Server. A product that supports multiple databases and takes advantage of specific
features of each demonstrates that there is a superior architecture in play. By using a common
database interface, all database-specific functionality is managed by a database driver, a single
point of contact in the code. This does nothing to impede performance, as the common interface
can take advantage of any feature of a specific database. This kind of design also tends to
improve reliability, as the same core business logic gets tested in a variety of environments.
Claim: Developing exclusively for Microsoft Platforms means a
product has an architecture.
Developing for Microsoft’s platforms has some advantages. Often the tools work well together
and marketing support from Microsoft is strong. Using “best of breed” tools also has some
advantages. As strong as Microsoft is, there are products like Oracle’s database and the Linux
operating system that are in demand by customers for very good reasons. The truth is that either
a “Microsoft only” or a “best of breed” strategy may be a good approach to take. But let’s be
clear—this has nothing to do with having or not having an architecture.
Claim: The product is written in .Net so it has a strong architecture.
Microsoft
®
.Net™ is the basis for the current family of programming languages supported by
Visual Studio
®
. These are an updated set of programming languages with a common runtime and
a common programming framework. There is certainly a lot of good technology in the set of .Net
libraries. However just being written for .Net doesn’t mean you have a good architecture; it is just
an implementation decision. You can just as easily implement a poorly architected system in .Net
as you can in any other programming environment. In .Net you have the additional challenge of
providing choices; the easiest way to do things in .Net is usually to use all Microsoft application
servers providing single-vendor lock-in of the whole system. Also currently .Net only runs on
Windows since .Net support in Linux is not complete and faces several legal hurdles.