Some broad direction as to how to develop an application

No Gravatar

The goal here is for me to give some broad direction as to how to develop an application. These tips will not tell you how to build an application or how to achieve certain functionality. That is up to the developer. The only goal here is guidance.

Data Model

In complex system the data model is varied. There’s lots of common data across multiple classes, and there’s lots of variations on the same theme. How do you tackle this problem? This is the gospel truth, but I’ve found a way to mitigate class bloat to some degree.

User interfaces for common data items. Multiple classes may need locking flags. Create an interface called ILockable. Multiple classes may need to keep track of what project it relates to. Create a class called IProjectResident.

User interfaces for common functionality. You’re going to have several objects, for example, that correspond to an entry in a database table. An interface called IDatabase would contain methods for setting up queries for that object.

Create standard base classes. Every data model has common functionality and data that is shared across a large number of classes. Defining those such classes will make code more maintainable and will reduce the repetition of code.

Use a pattern of interface, abstract class, and specific class instance. First creating an interfaces that define high level properties and methods. Next, create abstract classes that define baseline implementations for each of those interfaces. Finally, create an implementation, extending the appropriate abstract class, of each version of each interface.

Use C#’s multiple inheritance. An interface and a class can have multiple interfaces, so multiple functionality and data combinations can be formed. This ability, again, makes code more maintainable, and it reduces code that is repeated.

User Interface

The interface is where the money is made on the website. The UI provides the functionality that the customer demands. What separates good sites from bad sites is how that functionality works, how maintainable it is, and how extensible it is. All of that stems directly from how well the UI is designed.

Understand the technologies involved., for example, allows events, for a page and controls, to be processed on the server side. Processing all events using postbacks to the server degrades performance. A technology like AJAX, for example, allows communication with the server without doing postbacks, which helps to improve page performance. The point is not review, in an exhaustive list, every technology and what each is good for. The point is that designing a good UI involves understanding what technology exists and where each should and shouldn’t be used.

Develop a UI model. The temptation is to simply embed the standard controls and give them server side events. Baseline control classes, for both user controls and web controls, should be created. Common functionality can be centralized to improve maintainability and reduce repeated. Basic extensions of each standard control type could also be created. Logic specific to your controls can be created. Specialized versions of each extended control should be created for different situations. This allows a robust and varied UI.

Template your pages. The layout of pages should follow consistent patterns. One general pattern can be developed and then specialized for each type of page. This helps with maintainability. The UI modeled described above can be used to achieve this.

Integrate multiple technologies into you UI model. JavaScript, AJAX, Web Services, Flex, Flash, etc. have a lot to offer. Take advantage of that. There may be a headache in designing how to integrate each and how to combine them, but you will have a better site as a result. Cutting corners, if you can avoid it, is never a good thing.

These tips come from my experience as an developer. Certainly there are many tips that could be included here. These are the ones that come most readily to mind. Good luck with your development, and I hope that these tips have been helpful.

About Author: King of Mountain, :) just kidding, His name is Collin Rusk. He completed his Graduation from Le Moyne College 2005 on Management Information Systems with a minor in Computer Science.  He worked for Flagstar Bank from 2005 to 2009 as a front-end developer. Now he is working at NetCSD Lead developer and architect focusing on applications. Currently working on modernizing the company’s software framework. He loves video games, board games, reading about politics and economics and history.

Database design: A good approch to keep data on Track

Database is everywhere and kind of everything. Web application development mostly depends on a good database design. So we must be careful about it. Here I’m gonna tell you a good practice while designing database. Its not something mandatory but really good approach. ID: everybody know about it. Better skip it. CreatedDate: In every table

Interview of a working geek, Part -1

This is an interview of Collin Rusk working on a software firm in USA. I just chatted with him today. [Bazlur Rahman]: Welcome to Vanquish Tech, Can you tell us your readers about yourself and your Journey in the software development? [Colin Rusk]: I’m 28. I write mostly web apps. I’ve written both java and

Do’s and Don’t to improve application performance ??

Through out the development life cycle and also in testing phase, we are very much concerned about application performance. If that application is web based one than performance takes the prime consideration. Sometimes we mostly concentrate on developing a feature to provide the required service. After the completion of the development phase if the question

What is a NullPointerException ?

I think, there is no any beginner in java who didn’t face the NullPointerException (NPE). So in this text I’m going to figure out what is actually NullPointerException and why it is thrown. You guys should know that Java does manipulate objects by reference, and all object variables are references. for say, you declared a

How to Export/Import MySQL database/dump from command line

You may want to keep a backup of your MySQL database that is called database dump. Even you may want to import a dump into your MySQL database. And if it is, this text goes for you. Export command : mysqldump -u [userName] -p [password] [databaseName] > [export directory]/[dumpName].sql example – mysqldump -u root -p

Beginners’ guide to PHP, part -1

Before going to the serious topic, let me put some worlds on why to choose php to learn. In a web page, we can have lots of static element like image, text etc. But if we want something dynamic, we need some dynamic programming. For dynamic web programming we need to know some programming language.

Introduction to web programming with spring framework, part -1

Before moving on web programming, we should know about something that is really important specially for beginners . Most of them are terminology. First Let us know about the phrase enterprise application. Enterprise Application: Enterprise application is sometime called business application. When we make some big application and that is for some business purpose, we

How to print as Pdf in Java

Do you want to print something as a pdf in your java application? if, this text is for you. Its prety simple. First you need download a jar. download it from here. Now you need to configure it in your eclipse IDE. I use eclipse. So no idea about others how to configure. I hope

Different cursor shapes in Java

We are very much familiar with different cursor shape while using our application. As I’m very much familiar with Java, I was very much curious how to change the shapes means showing cursor in many different shape in different moment in my Java application. So I found the way. In this text, you will learn