Sunday, April 29, 2007

Database Design Diagram

After some struggle in the design, I've finally decided to choose the current path:
separating the Data Access Layer and Business Logic Layer.

I've designed the database.
As I may only be able to upload one database to my free hosting site,
so I have to share the same database for all my future projects.

There will be some tables sharing among these projects:
* User
* Attachment


The main tables for MyProjectManager are:
* Project
* ProjectTask
* ProjectMember
* TaskAssignee
* ProjectAttachment
* TaskAttachment
* ProjectTimeLog


The reference tables include:
* ProjectApplicationType (whether Web application or Windows application)
* ProjectStatus (Not Started, On-going, Completed, On-hold, Terminated)
* ProjectPhase
* TaskType (whether Project Task, Project Request or Project Bug)

I was confusing whether I should combine ProjectAttachment & TaskAttachment tables into one,
as they serve for the same purpose, except one for Project, another for Task.
Same go to ProjectMember and TaskAssignee.

Well, this is my first version of database design.
I really gotta get it up, and start work on it, otherwise it'll never end. ^_^

You may download the database diagram here:
MyProjectManager Database Diagram (DatabaseDesign.zip : 19.4KB)

Stuck in 3-Tier Application Design

I am in the midst of designing MyProjectManager's architecture.
I am stuck here.

Definitely, I'd like to have 3 tiers in my application,
which is Data Tier, Business Logic Tier and the Presentation Tier.
There's no doubt in data tier and presentation tier,
which consists of the database and UI, respectively.
But, how about the Business Logic Tier?
I've seen the design which combines the Data Access Tier and the Business Tier,
which is a class contains the Data Access codes and also the Business Logic codes.
I guess this will boot up the performance, but will it make the tiers ambiguous?
Should we separate the Data Access codes with the Business Logic codes?

I've read an article saying the advantages of separating them are:
1) Increases code transparency
2) Supports changes in Data Layer. You can change or alter database with out touching the Business Layer and this would be a very minimum touch up.

How do others deal with this issue?
Separating them? or combing them into one layer?

Wednesday, April 18, 2007

Writing < > in the web page

Since HTML uses the tag <>, so if you want to display <> on the screen, you need to specially convert them to some other format.

To use the opening tag "<", you need to type
To use the closing tag ">", you need to type
Say, you want to write<HTML> , you actually need to type

Adding CSS to ASP.NET

geI have no idea how to deal with CSS, and also include CSS into my ASP.NET pages.
After searching in the Internet, I finally found that it's so simple to do it.

First of all, do not set the font properties for all the controls if you decide to use CSS, otherwise the properties set will overwrite the CSS attributes.

1) Add a new item --> Select "Style Sheet" from the item --> Say, name it "Style1.css".
2) Copy the following text into the CSS file.



body
{
font-family: Verdana;
font-size: 8pt;
}
.MyLabel
{
color:Olive ;
font-size:
8pt;
font-weight:bold;
font-style:italic;
font-family:Century
Gothic;
}
.MyTextBox
{
color:Silver ;
font-size: 15pt;
font-family:Verdana ;
}



Where "MyLabel" and "MyTextBox" is the CSS name.
3) Copy this statement in the ASP page between the "head" block:
<link href="Style1.css" type="text/css" rel="stylesheet">
OR
Select "DOCUMENT" property for the ASP page, then set the property "StyleSheet" value to the CSS filename, i.e. Style1.css
4) Create a Label and a TextBox on the page.
Then set the property CssClass for Label to "MyLabel", and "MyTextBox" for the TextBox.
You'll see the effect.
My CSS Example

Isn't it really simple? I've applied this to my current project, which makes it look much nicer and neater. I'm happy for that. ^_^

Thanks OceanGenie for telling me this good site for learning CSS - CSS Tutorial from W3Schools. If you want to learn more about How To write the CSS attributes, I guess this site consists of many good tutorials.

Friday, April 13, 2007

Project Initiation

After drafting out the rough ideas from my mind, I started documenting these in proper documentation.

I've finally done with these documents:

  • Proposal - state the purpose of the project and also the general features.
  • Use Cases - list out the actors and their actions.

Next, I'll be drafting out the Gantt chart.
This project was really started in 9-April-2007. I plan to get it done in three month time, which is by end of June-2007, I should be able to start using this project management system.

You may download the documents here:
(Proposal.zip : 14.6KB)
(High Level Use Case.zip : 23.6KB)

My First Project - MyProjectManager

I've decided to develop a project management system as my first project, simply because I need a tool to handle the projects I'm going to build.

I always like to learn project management and better software development process. Having been researched for quite some time, I felt like I was still standing still but not moving forward. Finally, I decided to start with a simple process first, then only enhance it in the future along the way.

This project management system will be a web-based application, it's intended to help users to start a project easily and also with some guidelines. So that, I won't be struggling in kicking out a project anymore in the future. I should know how to start, what to do, how to do at the very beginning, and also am able to plan how to carry out the whole project.

By doing this project, I'll be able to learn project management, web application development using ASP.NET & C#, plus ADO.NET for the database. I also try to apply a better architecture design in the application. This is one of the areas I'm interested in software development too.

Any feedback or suggestions is welcomed. So, please feel free to drop me a comment if you have any ideas or thoughts. Thanks!

The Plan

I have these thoughts in my mind for carrying out the plan of building my website:
  • Start developing projects. It's always good to learn from practical work. Besides learning, I can develop applications for myself to use too.
  • A blog to record how this website is being set up, and also the process of the learning. Well, before I have established my own website, here will be the host of my blog posts.
  • Record and list out the helpful website URLs. Resources are always useful in the learning process, but I always lost the URLs somewhere in the space.
  • Simple prototypes, sample codes, code snippets, articles, tutorials are always useful in learning software development.
  • I always like to have a forum to serve as a communication media for discussing and sharing certain topics/opinions.
These are the areas I plan to include in my website in the future.

Wednesday, April 11, 2007

The Purpose

I have been thinking of developing my own website for many years.
Though there were many plannings going on, the simple task hasn't been really executed, as I did not have a solid idea on the purpose of the website.Having decided on developing my interest and skill in software development, I finally found that there is a need for me to build a website, recording my learning process throughout the whole path.
Here we go, finally I've decided the purpose of my website.

Purpose:
  • To record my learning process & result in software development.

Goals:
  • To encourage or push myself to keep learning, to be more hardworking, or to motivate myself in learning.
  • To promote the message "Programming is Fun!"
  • To share any software development related information with others.
  • To receive feedback, advices, suggestions, comments from others, so that everyone will benefit.

I do not like to be alone in my learning path, I always like to involve others along the way, same to my life. It's fun to have companies, so that we will grow together, so that we can point out each other's mistakes, from there we learn together.

Moreover, it's just fun! Here we start the journey......