Developing scalable classes for a web application

The key to developing an enterprise application that can grow with the business requires the application development team to have a vision.  Code the database and the front-end application so when business rules grow, it’s easy to accommodate new operational parameters.  A good way to create a scalable front-end application is to make available various data elements of an entity. 

Creating objects that encapsulate all necessary data elements of an entity is a great way to modularize your application.  Let’s think for example of an application you are writing for a university.  You have three main entities: Students, Classes and Faculty.  If I were to build such an application, I would create a class for each entity that would hold all possible data elements for that entity.  That includes data that your application doesn’t currently require.  For instance, in the Student class the city that the student was born in may not be of significance right now.  But still when you create the class, you should still allocate a space for the city of birth just in case it becomes important for future statistical purposes.  In such a case, instead of having an application programmer go into the class code and adding new functionality, the front end programmer can just pull the city of birth using a Get function.

Post to Twitter

Posted in Uncategorized | Tagged , , , , , , | Leave a comment

Managing a Web Application: Designing the Database

Database design or database application development is an art.

You have identified the data items that you want to save and you know what data you want displayed on each page.  Which do you do first, User Interface design or Database Design?

That might be a matter of preference.  What I normally do is create my database tables first.  It’s easier to make changes to your database table structure than it is to change how data looks on the screen.  Screen changes do take longer usually.

MS-SQL has made designing tables so much easier.  You can even use the SQL script builder to insert into and update your tables.  Writing Stored Procedures is always the preferred way to save and retrieve date.  A convenient way to call the stored procedures would be from data access classes.  You generally encapsulate your data access routines into these classes.  Then from your front-end application, you would call the class methods.   This way you would organize your application.

Post to Twitter

Posted in Uncategorized | Leave a comment

Web application components

Most Web Applications consist of two main components:

  1. User Interface Design
  2. Database Design

Designing the User Interface.

Based on your blue print you should know what you want to present.

Put related information close to each other.   Data on the page needs to be related and although it may need to be saved in a few different database tables, needs to be interconnected.

Navigation from page to page needs to be made as easy as possible. If application’s web pages are required to have common headings, master pages will become handy.

However you decide to do your user interface, you will need to use a tool like the .NET environment.  .NET environment will let you design your screen the way it makes sense to users.  You will design your pages and then code the application so you can save screen data in your database.

The general advice would be to try to use a consistent way to save and retrieve your data so the job of replicating the same process would be easier.

Post to Twitter

Posted in Uncategorized | Tagged , , , | Leave a comment

Running an Application Development Project

IT managers often wonder how they should go about starting a project.   No matter how small or large your company is, principals are the same.  Even though with smaller organizations, you have fewer people to talk to, still the same path needs to be taken

Identifying the need

  1. Conducting meetings with requesting organizations to define in clear terms what needs to be accomplished.
  2. Creating a blue print of the final product.
  3. Refining the final product by reviewing the blue print with the requesting organization.

Keep in mind that these facts about the blue print:

  • While bullet points show the major idea, details may not cover 100% of what is needed.  This is just a fact of life.  Project definitions that try to define every minute detail, often times will take more time than necessary and will result in unwanted delays.  With that said, major points do need to be identified.
  • When a project is being defined, requesting managers should always talk about the big picture, what is in the horizon and how the product of this application development project fits within the future of the organization.
  • It’s important to conduct meetings with different people within the requesting organization to learn about other viewpoints and expectations about what need to be accomplished.

Next I will talk about:

User interface design

Database design and development.

Platform to use

Finding an application development team.

Post to Twitter

Posted in Uncategorized | Leave a comment

Figuring up Database Costs

Let’s be realistic; Database development is expensive.   A typical scenario: Your business has been running for years without a relational database, or maybe you have been using a relatively mediocre database tool such as MS-Access or a data management spreadsheet tool such as Excel.  You have come to a point where your existing data management tool is just not cutting it any more.   You just have way too much data to handle, searching has become a painful process and your data are not linked.   

I would say it’s time for you to upgrade your database management ways.  So where do you find database designers/developers?  How much should it cost you? 

People have different ways of finding their resources but as far as the cost is concerned, don’t think of it as going out there to buy a nice Appliance for your house.  Instead, in terms of cost, think along the line of remodeling your kitchen.   Database development is not cheap.  Even if you get a cheap offer say from offshore companies or some local recent graduates, don’t be duped into starting with them.  It will be hard to get out of it.  And when you do, most probably the new company will have to start from scratch.  You have lost several months and thousands of dollars, you are frustrated and you are still without a workable database.

The invaluable advantage of hiring a professional US company is that during the course of database development you will need to be constant contact with your developers.  They need to learn your business inside and out!  You will become very good friends with them so they will need to be easily accessible.   In fact before you hire them make sure they understand your business well and that you are comfortable with them. 

I used to hear that Microsoft and Oracle database experts charge something in the neighborhood of $400-500 per hour!  That’s a whopping figure but it should tell you that if you find a good database developer for under $150/hour don’t let them get away.

Now if you are new to this, I don’t want to scare you!  If you are just starting your business or have minimal amounts of data, your costs will be much lower depending on what you want to do with the data.

Post to Twitter

Posted in Uncategorized | Tagged , , , , | Leave a comment

Database triggers, why are they so dangerous?

People ask me whether or not they should embed a business rule into a trigger.  My answer is hmmm… Well, triggers are a wonderful tool to use when you always want a certain action to take place upon a table insert, delete or update.  Yes, triggers sound quick and nifty and are left for those with esoteric knowledge in database development, but are they safe?  After all you only see the triggers if you click on the trigger box under each table.  They are not immediately obvious.

The problem with triggers is that you tend to forget them!  Suppose after a table has been designed and used for many months or years, you decide to write a new script (i.e. stored procedure) to change something that affects one of the tables that your trigger changes, you will have to remember about that trigger!  Or it could come back to haunt you.  And then after the trigger damage is done, you will have to edit your trigger to make its functionalities conditional.  Over time, with so many conditions, your trigger will be way too confusing and the whole original purpose of creating the trigger diminishes.

Use triggers with care.   I think delete triggers are generally safe, insert triggers are fairly safe as well.  Most problems are with update triggers.  I would try to avoid them.

Post to Twitter

Posted in Uncategorized | Tagged , , , , , , | Leave a comment

Maintaining a database that imports inconsistent data

When you get daily/weekly data imports and the data that comes in doesn’t always follow the expected pattern, you have got yourself a seemingly un-resolvable ongoing problem, especially if the problematic data comes in different variations.
For a database expert, there can not be a more difficult challenge.
How do you deal with this?
Most data that comes in is fine and fits right into your schema and table structures but occasionally you have chunks of data that (in the middle of all the good data) causes your Stored Procedures not to work correctly.

At AMK Web, we recently experienced this in its worst form. Is it even possible to account for all cases? And if you ever do, how does all your error checking impact the speed of the process?
Our solution was that since we are dealing with huge amounts of data, to keep our client happy with the bill, we decided to break the data down into chunks so that we can deal with small amounts of it at a time hence making the exception handling process more manageable and faster to code.

Post to Twitter

Posted in Uncategorized | Tagged , , , , | Leave a comment

Understanding client business operations, the importance of careful listening

When a database development company is asked to build a database application for a client, it needs to take its time to diligently learn client’s operations. Many times that process seems intuitive and easy to grasp while in reality, it takes more work and a deeper look into details that may finally help a consulting company understand how a client desires to manage its data and how it wants the data presented.
In my experience over the years, even similar businesses operate differently when it comes to details. While business objectives are similar, how businesses handle invoices, billing, payments, service scheduling etc is in many cases unique. The way they use their data for future analysis may also require that the data is stored differently. In reality it might take several tries and a lot of patient attention to details that could put a consulting or Database Company in a position to efficiently resolve clients’ daily operational issues. The key to success in application development project is in hours or days of listening and spending time with clients, there is no short cut.

Post to Twitter

Posted in Uncategorized | Tagged , , , | Leave a comment

Rebuilding your Database

You have been using your Access database and an Excel spreadsheet to manage your database, You have been using these tools to update your data, sort it and query valuable information from it.   Now With the amount of data increasing, access is getting to be too slow for processing the amount of data youhave.  Plus with your database being such a valuable resource, your needs have expanded.   You Find yourself trying to learn how to use the more powerful tools that Access provides.  You find yourself struggling with Access spending countless hours and not getting the results you need.  Time that you could have spent developing your business relationships now has been wasted.

Trying to ask your employees to learn Access may prove to be a waste of company time as well.  After all you do need a dedicated database person in your company.  Someone who has the appropriate training to work with databases.

It all very soon becomes a headache and you feel like you want to have faster data retrieval, easier updates, more advanced ways to sort your data by different attributes.

What do you do?

You need a database application that encapsulates your database and gives you access to it via a user interface.  That way you or your employees don’t have to learn how to use the database.

Using a database application developer, you can tell them exactly how you want to access the data.  How you want the data displayed, what queries you need to do on a daily basis.

So where do you look for a database developer?  How much will you have to spend? and in this week economy…..

Post to Twitter

Posted in Uncategorized | Leave a comment