Cost-effective technology solutions for a fast-changing world

Our Latest Articles:

Database System Software and N-Tier Development

Posted by Computer Friendly Associates, Inc. (CFA) on January 5th, 2009 — in Blog, Business Solutions, Cost-effective, Database Software Development

Introduction
Database system software consists of three main components or layers: the database, the user interface, and the process layer. Many tools are available to develop these components. One of many common basic architectures uses these technologies: SQL Server (database), VB.Net (user interface), VB.Net + SQL Server stored procedures (process layer).

Software engineers refer to this basic architecture as a 3-tier system or n-tier system (“n” is a variable number, typically 3 or more layers). Generally the 3-layer design applies to all database software. Often one or more of the three layers integrates multiple (“n”) technologies and/or steps. Desktop software and online website database applications use 3-tier systems.

Microsoft Access is probably the most widely used database system software. Any MS Access system that includes a form or report (user inteface – UI) linked to a (database) table is a basic 2-tier system. Sometimes you do not need the middle tier – the process or application layer, but usually systems have some level of processing. For example, you want to validate incoming data before saving it into the database table.

Database Layer
The database layer is perhaps the easiest to understand: it is simply where the data is stored. Again, MS Access is the most widely-used database storage system. Many other database products exist: Microsoft SQL Server, Oracle, mySQL, postgreSQL, DB2, and more. These database products are often used for both desktop and online database systems. Older desktop software often used DBase, Paradox, or FoxPro.

The most basic storage is a text file. A CSV (comma separated values) file has a separate row of text for each record. Each row is separated by a “delimiter” (often a comma), to designate where each data field begins and ends inside the row. A basic Excel spreadsheet/worksheet is essentially another way to view a CSV file. An XML file is a text file with tags to delineate data records, fields, elements, relationships, and attributes.

Typically, software systems use true database products rather than text files (or spreadsheets). Database products enable data to be stored in various tables. Tables usually have “identity keys” that enable a table to relate to other tables. This is called a relational database system (RDBS). One-to-many relationships are essential to database systems. A common example is that one sales order may include many products ordered. Database administrators use rules of normalization to organize data logically and avoid unnecesary redundacies.

User-Interface (UI) Layer
The user interface (UI) is how people interact with the database. The most basic and important example is a form, which includes data fields and one or more buttons to perform actions, especially the action of saving updates to the database. Usually software contains several forms, which users access easily via menus, toolbars, or button switchboards. These all comprise a visual design that users see on the screen, and this is called the graphic user interface (GUI).  We interact with the software using the keyboard and/or mouse (or touchpad, trackball, touchscreen, etc).

Developers need to design forms to be logical and easy to use, i.e., user-friendly and intuitive. Forms often contain various components to efficiently present data, facilitate data retrieval, and enable quick navigation from one data set to another.

The concept of list/detail is essential. Usually database software displays a summarized list of data records with an ability to click on one record to show (and edit) its detailed information. Email software is an example everyone uses. We see a list of our emails in the inbox, and then can click on one of them to get to the detail. Developers display lists using components such as a datagrid, listbox, listview, treeview, and other methods.

The detail form often uses special components for various needs. Developers need to use the best component (or tool or control) for each data field. The text box is the most common, but others include drop-down lists, radio buttons, checkboxes, calendar controls, image boxes, and others.

To have powerful, well-organizing forms, developers also use tools/components such as tabs, panes, nested lists, menus, toolbars, and others. These tools enable software to show relationships and provide quick and easy access to information and functionality. Older software tended to use many pop-up forms and sometimes a pop-up form is the best choice. However, the integratation of many features, functions, lists, and details into each form generally produces the best graphic user interface.

Historically, more tools have been available for desktop software development than online database applications. Recent technology and techniques have enabled web-based solutions to increasingly have the power of desktop solutions. Various development products are available for creating a user-interface. Microsoft’s Visual Studio is especially popular, especially because many of its tools and coding techniques apply well to both desktop and online software systems.

In addition to forms, other methods are available for the user to interact with data and systems. The most common example is a printed report. A much more interesting example is that software products are increasingly using voice recognition and sound as tools for users. Sound interaction has been available for quite a long time but still has not been incorporated widely in business applications.

Process or Application Layer
The “process layer” is often also called the “application layer”. This is the layer between the stored data and the user interface. Programmers implement business rules in this layer.

A common approach is to first validate any attempts to update data. Trying to put an invalid date in a date field will likely cause a database storage error. At the very least, the system will have erroneous data in the database. Programmers need to make sure that all data meet the correct business rules to guarantee the most accurate and acceptable data possible. Programming languages such as C# and Visual Basic are popular for this task. Many website forms use Javascript to validate form data. Often the data validation step is incorporated into the user-interface. For example, a drop-down list of acceptable values guarantees that only good data is passed to the next step.

Once the data is validated, then programming code may instruct the system to send the data to the database. The “best practice” is to call a stored procedure to handle the incoming data update request. Many database products enable developers to write stored procedures (using t-SQL language) which process incoming data. The stored procedure may update multiple tables and perform various data transactions.

After the stored procedure updates the database tables, programming code may execute additional functions, such as sending out an email or printing out a report.

The process layer must also handle errors. A multitude of reasons may cause an error somewhere in the process. Without proper error handling, the software encounters a glitch and may cease to function properly. This can be extremely confusing to the user and open the door for more problems. The code must trap errors and execute a method for resolving each error. This often includes presenting clear messages and instructions to the user. This approach guarantees stable software and a positive user experience.

Implications of N-Tier Architecture
All database systems use some form of 3-tier architecture, however, many approaches exist. Carefully choosing the right technology for each component of software is a “best practice” that produces the best software in terms of performance and scalability. For example, some developers may rely too heavily on VB code or t-SQL, when the best approach is use the best tool for the job.

Developers can “mix and match” technologies. ODBC (open database connectivity) allows many user-interface tools and process layer languages to connect to many database products. This also facilitates prototyping. For example, a developer may set up a SQL Server database but use MS Access for the front-end to quickly put together the user-interface as a demonstration version. Once the requirements are more clearly established, the developer may use Visual Studio to produce a more “heavy duty” version of the software.

Some software offers both website and desktop versions. Carefully designed architeture enables developers to more easily produce versions of the software for both platforms. Ideally the database and process layers apply to both versions, so the bulk of new work is focused on the user-interface.

The separatation of software design into these tiers provides maximum flexibility, scalability, and high performance. This also enables developers to work as a team more effectively, with each team member focused on specific tasks inside the larger framework.

How to Plan a New Website: Four checklists of web essentials

Posted by Computer Friendly Associates, Inc. (CFA) on January 3rd, 2009 — in Blog, Website Design + Development

What do you really need in order to set up a website for your business? Here are the basic building blocks as well as some important guidelines for what those blocks should and should not contain. They are broken up into four different checklists for clarity: Website building blocks, Blocks of what?, Play nice with others, and Golden rules. These checklists are a great starting place for the small business owner who wants to put their business online effectively and sustainably.

Note: Of course, these lists do not cover “all there is” on this topic and things do change over time. If you have a website, or if you are considering one, take a look at our blog for current tips, trends, and techniques that may improve the outcome of your site. The details and real-world execution of these lists can get a bit confusing and detailed so we will address these topics and more in later posts.

Our main business goal at CFA is to help our friends, like you, get online and keep current so you can compete more effectively than ever before. All the best!

Think about the basic framework and sustainability of your site. There are a limited number of essential parts to a good website. Each part has an important role to play.

Checklist 1 – Website building blocks

These are your basic building blocks for the framework and sustainability of your site.

  1. domain name (URL) - Domain name, URL, or web address… this is the named space for your website online. If you have not decided the name for your new business yet then you are really lucky! Find a great .com domain name that is not taken and derive your business name from that if possible. If you are in business already then try to reserve a domain name as close as possible to your business name.
  2. logo & tagline – These are how your ideal site visitor BEST recognizes you. Even the smallest business needs a strong personality to help people connect with your identity. The whole process of determining exactly what represents you is extremely important. 
  3. keywords & description – What makes it unique and attractive and valuable? These words are how your ideal site visitor KNOWS you and how they describe you to their friends. These words and phrases will also guide new ideal site visitors to your website from an online search. They crystallize the essence of your business.
  4. header – Your logo, tagline, and other header content makes your ideal site visitor feel comfortable and reinforces your overall vision and personality on every page.
  5. menu – Your main menu holds your main pages with every major topic about your business that your ideal site visitor usually wants to see. Sub-menus can add clarity and detail.
  6. main pages – Cover all the important topics and satisfy all the basic needs of your ideal site visitor on your “main” pages. These should have great content (see Checklist 2) and be similar in style and layout.
  7. sub-pages – Expand on the main page topic in more detail, sub-topic by sub-topic. Always show respect to your ideal site visitor by making pages that succinctly offer relevance and value.
  8. news & links – Illustrate your relationships as well as your awareness of trends in your industry and the market as a whole. This always requires regular updating and is often satisfied by an RSS feed or blog option.
  9. footer – Reinforce your image, boilerplate, and contact information as well as important security/privacy agreements, certifications, awards, credentials and/or memberships on every page.
  10. maintenance – Constant critical evaluation and upkeep is vital to looking vibrant, current, and relevant to your ideal site visitor. Things are constantly changing and the best advantage a small business has is their ability to quickly respond to their environment. (see Checklist 3)

So what needs to go in each of those basic building blocks? 

Checklist 2 – Blocks of what?

Most business and organizations should follow these essential rules that are based on the guidelines given by Google: http://www.google.com/support/webmasters/bin/answer.py?answer=35769

In addition to recommendations by Google at the above link, we recommend:

1. Great content

  • Know yourself and your core business and always write your content with your best customer in mind. Treat others as you would like to be treated as a customer.
  • Write out all your pages is very thorough outline format.
  • Efficiently give the “who, what, when, where, why, and how” of your business. Preferably on the home page.
  • Show that you really know and can easily relate to your target audience.
  • Site visitors are looking for specific information and want to find it fast.
  • Know your best keywords and phrases that people may use to search for a business like yours. Use keywords often, but make sure all your site text is optimized for humans first.

2. Attractive and classic design, not distracting or busy

  • Communicate your business vision as effectively as possible using both text and images. Think efficiency. People want what they want when they want it and they don’t appreciate having to dig for information.
  • Have a look and feel that your target audience expects and has an appropriate reaction to. If you deal in beauty, make your site beautiful. If you deal with intellectual property, show that you are organized, calm, cool, and collected.
  • Creativity is important but is secondary to functionality. If a site visitor can’t find what they are looking for in a few clicks, they will likely leave and never come back. Make it easy for people to buy whatever you are selling.

3. Current but durable

  • Classic styles last longer and are more easily understood by a wider audience, so use standard layouts and navigation.
  • Use blogs and RSS feeds where appropriate to inject current events and news into your site.
  • Don’t follow short-term trends unless you have the resources to update your corporate image often, however if you have a business whose nature it is to follow trends then work with your web designer on a sustainable solution.

That was really hard work… is there more? Just a few more things… 

Checklist 3 – Play nice with others
Security and maintenance are extremely important. Remember:

1. If it sounds too good to be true, it is.

  • Keep your anti-virus software current and only download essentials.
  • Be careful about sharing personal and business information online.
  • Only go through trusted routes for online payments etc.
  • Don’t sign up for most freebies… they can cost you a lot in the end. 

2. Know the your online playing field.

  • Who are the other teams? Who are the sponsors? Be aware of what current websites offer and what works for your business.
  • Who is in the audience? Know what your customers are experiencing online with your direct and indirect competitors.
  • Who are your competitors? Visit their websites often to know what they are doing. 

3. Look into online marketing.

  • Find out what online networking and advertising opportunities are available and participate in the ones best for your business.
  • Research what publications, bookmarking, and networking sites your customers utilize. Build, maintain, and share accounts there too.
  • Join appropriate groups that are related to your business and encourage them to link to your website from theirs.
  • Create a free blog if you do not already have one that is part of your website. Post often and have a reciprocal link with your website.

4. Check our CFA blog often for updates on tips and techniques for marketing your business online and more.

And finally… 

Checklist 4– Golden rules
Concepts to keep in mind during the whole process of building and maintaining your website:

  • Be critically confident in your corporate identity. Make sure your image is helpful to wherever you want to take your business. If it needs updating don’t try to avoid this important work… just make it happen! We can help.
  • Always think of your best customer with every decision that you make.
  • Constantly ask for and learn from all your feedback. See it through and implement the changes that make sense for your business in the long term.
  • Customers and potential customers come to your website looking for specific information. They want to find it fast and get on with their busy lives… honor their time if you want to keep them. Focus on them. Give them what they seek. Anticipate their future needs in reference to your business.
  • Opportunities and traps are everywhere. Just like in real life, you need to stay on top of trends, question everything, and surround yourself with smart, honest people who care about your business. Your challenges will change over time, sometimes dramatically, so get comfortable with technology… it’s your new friend and it can help!

How we are improving our business during this recession

Posted by Computer Friendly Associates, Inc. (CFA) on January 2nd, 2009 — in Blog, Business Solutions, Cost-effective, Database Software Development, Website Design + Development

I knew the economy was bad when one of our clients called us about one year ago to say that his business was closing.  This was sad news and a personal harbinger of the looming economic recession. I encouraged him to keep his website going and he did. Hopefully he can revive his business eventually.

We decided to ride out this recession and use any available time to improve our business. We set several realistic goals that we could implement relatively quickly:

  1. Become more cost-effective, especially by lowering our dedicated web hosting server expenses.
  2. Keep down the costs to our clients and keep our prices very competitive.
  3. Improve the quality of our products and services.
  4. Deepen our technological expertise and code libraries.
  5. Launch a brand new version of our website, including a new design and improved content with an integrated WordPress blog.

At the same time we always prioritize producing high-quality and timely results for our current client projects. We needed to work very hard to meet our project demands while allocating time to also restructure our business to be more competitive moving forward.

We have successfully completed our goals. Of course, we always engage in continuous quality improvement, but these were specific benchmarks for us to attain. Now comes the fun part: leveraging these achievements to bring in more clients through new marketing efforts.

Technology to Help Businesses Survive this Bad Economy

Posted by Computer Friendly Associates, Inc. (CFA) on January 1st, 2009 — in Blog, Business Solutions, Cost-effective

Most businesses are facing major challenges as they try to survive the current economic downturn. High costs combined with lower revenue produce a downward spiral for individual businesses and the economy as a whole.

For a business to survive in this environment, it must lower costs and position itself to better compete moving forward. We are likely facing a deflationary period in which prices drop, and many businesses will be forced to lower prices simply to stay competitive.

Try to find silver linings amidst the dark economic clouds. Do what you can to make your business a lean, mean, fighting machine. This means cutting costs while improving your products and marketing efforts.

Understandably, many businesses are reluctant to increase any costs at this time, but some spending may be necessary to position your business to survive and compete in a downward economy. Just as the U.S. federal government plans to spend to stimulate this economy, your business may need to spend wisely to stimulate sales.

One-time expenses to improve your technology infrastructure will likely result in improved efficiency for your business. Use any downtime to build database systems to replace your antiquated spreadsheets and paperwork. This will enable you and your staff to soon focus on sales, marketing, and customer services – and to do it better and more nimbly moving forward. If you do not have quick access to all of your business information and sales contacts, you need systems in place to increase your effeciency.

What is your web presence? How can you improve it? The web is only going to continue to increase in importance. If your business does not have a website now, you most likely need to get on the web as soon as possible. If your website is outdated or missing the depth of your competitors’ websites, you need to upgrade. Your website must be an integral part of your sales, marketing, and customer service. If your website is not assisting in all of these areas, you must address this or your business may not survive.

Database and website solutions do not need to be highly expensive or overly time-consuming. These are necessary business expenses that position your business to compete during difficult times. Once the economy turns around (and the good news is that it will eventually), your business will have the right infrastracture to grow.

Use the web to market your business and promote your website. Many online networking tools have enabled businesses to reach a wider audience. Send out email newsletters to your clients, customers, and prospects. Start a blog for your business so you can post new information quickly and often. Providing free useful information helps people find you.