This dissertation has been submitted by a student. This is not an example of the work written by our professional dissertation writers.
Knowledge in itself is a continuous process. At this moment of my development, I can hardly find enough words to express my gratitude towards those who were involved with my progress.
I am highly obliged to my respected tutor as well as project supervisor Mr Joe Wilkinson for their valuable and constructive guidance, without which I would not be able to finish the web based application which I have now created.
Word of thanks to the whole Library staffs and computer suite for being friendly and helpful to me in all possible ways. It would have been difficult for me to make this part of the application without their help, especially to upload the application on line.
Last but not least, my sincere thanks to my family, friend (Marc sayce), cousins and my tutors for their constant support, inspiration, encouragement and blessings without which the task of completing the application successfully would have been next to impossible.
Laptopwiz is a small to medium sized company based in Eastbourne and mainly deals with Laptops, desktops and their parts. They sell laptops, desktops and parts on eBay. They have experience of over 15 years in the PC and Laptop retail sector. The core of their business is selling parts from laptops and damaged laptops for spares and repair.
My client has been using eBay since twelve years. My client Mr. Raja is listing all the items on eBay for sell and he spends around £2500 for eBay listing fees and £1700 for PayPal every month. Mr Raja needs some sort of solution where he can avoid the eBay fees and use that money for another business expense or to buy more stock. Mr. Raja has their own company domain, bought nearly one and half year ago, but they did not build/hire someone to build the solution for themselves. I started working with my client as a trainee laptop/desktop technician part time when I was looking for a project which can help me to improve my skills and to help me achieve the MSc degree. Mr Raja and I sat down and talk about their requirements.[Mr Raja said “he has tried to build the solution by himself but because of not having enough knowledge about the technology and programming language he gave up” and decided to hire someone who have ability to build the solution for the company].
Requirements and specifications:
Requirements and specification is very important thing for me to state in this project. This section will have the information about what kind of functionality my client requires to be done; it will also include the objectives that need to be met. Specification will include how I and with what I am going to achieve the objectives.
My client's requirements are as follows:
- Good looking web solution where they can demonstrate their items for sell. i.e. Desktops, Laptops, other parts and so on. They also should be able to update and delete the item as and when required.
- Solution should be able to save this massive eBay fees.
- Connectivity with PayPal (and probably banks in future) so they are covered if anything goes wrong.
- From the customer point of view Mr Raja wants this solution to be fairly easy and fully functional for their potential customer.
- Automated email system once order has been placed.
- Order tracking system for customer (Customer management).
- Help with SEO (Search Engine Optimization).
- Easy maintenance if I am not there in the future.
The project scope should be well defined before starting the work for project planning. Anything beyond the project specifications will be considered ‘extra work' and will be charged on hourly basis.
1. Top Bar
- Logo / Site Name (simple text logo)
- Links on top for login, register, shopping cart (or view basket)
2. Menu Bar
- Categories as menu main items
- Sub -categories in menu drop down
3. Search Bar
- Search by keyword
- Search by Product Id / Item Code
4. Place for Adv. Banner (Banners will not be provided)
1. Product Categories List
- List of categories
1. Welcome Paragraph
- Description about the store
- Categories with a short description and a picture.
- By clicking on each category a sub-category page will be shown in the same space.
- By clicking on a specific sub-category a list of products will be shown with a thumbnail image, title, small and long description.
- A filter will be provided on this page for price range to refine result.
- Footer Links with sitemap link.
- Copyright Info
1. Customers will register and will be given username/password.
- Registration form with validations
2. Customers will be able to login using login form to see the following options.
- Link to view items in shopping cart / Orders
- Link to View and Edit Customer Information
- Link to View and Edit Billing and Shipping Address
- Change Password link
- Logout Link
1. Manage Categories
- Add New Category
- Edit Category
- Delete Category
2. Manage Sub-categories
- Add New Sub-category
- Edit Sub-category
- Delete Sub-Category
3. Manage Products
- Add New Product
- Edit Product
- Delete Product
Prototype might/might not have facility to connect to the PayPal option but it will be there in final product.
end user hardware SPECIFICATION
Basically any desktop or laptop which is capable of using Internet would be able to use this web application.
Available technologies to develop web application in:
There are many web technologies available in the market to build web application includes online installed application, I would call them a service, provided by the web hosting company or you can call it the service provide from the domain company. With help of this service customer can create web pages easily without having of any experience and can add different function, so there will not be any need of the web designer/developer for the basic web design. But when customer does not have any deep knowledge about the different functions, i.e to connect their site with paypal or to the bank, if search engine optimization or when customer cannot be bothered to waste their important time to build or design the web application they come to the web designers and tell web designer their requirements. According to that we as web developer come to play an important role in their business by choosing the right technology and provide them right solution. We also have to consider the budget of the company and the time that we are going to take to research and build the application. So let us see current available technology.
Available technologies are as followed...
- JSP (Java Server Page/s)
- CMS (Content Management System)
- Macromedia DreamWeaver MX
- Macromedia Flash
and many more.
ASP.NET is a component that is part of the .NET Framework. The .NET framework is a container for many technologies and consists of the required tools for development. ASP.NET operates within the .NET architecture, which means .NET framework should be installed to run ASP.net
I will need to install the .net framework to run ASP.NET 3.5 which has following elements and useful to my application.
MS Intermediate Language (IL)
MSIL performs real time pre-compilation of human readable code that conforms to the CLS (Common Language Specification). MSIL provides optimisation and structuring of the code ready for execution. It also enables portability, where written code can be portable to different machines that have the CLR installed.
The Common Language Runtime (CLR)
Executes the web application and performs many tasks that include calling the JIT (Just in Time) compiler to compile the MSIL code into machine code and interacts with both IIS Server and Windows.
The .NET Framework Class Libraries (FCL)
This is a mass library that contains different functionalities from already written code that is ready to be imported and made use of in ASP.NET web pages.
The .NET Languages
The .NET Framework provides multiple programming language for developer to use which conform to CLS definition and can be compiled to MSIL.
This is basically a combination of ASP (Active Server Pages) and the .NET technology to produce powerful, dynamic and scalable server side web pages.
ASP.Net is Microsoft's newest web technology lets you work exclusively with high level class and objects rather than directly with raw data. Building web application without ASP.net is very specific task but with ASP.net it's similar to building a application of win32.
About the Framework:
.NET plays a main role in the overall structure. The framework contain two technologies one with the foundation classes and key technologies which allow the development of solution that is from the very simple desktop application to the web level distributed application.
.NET contain aspects of many different topics which includes operating system independence, programming language derivation, application design methodology and large scale system solutions which only can be provided by the .NET.
There are many advantages using this technology for this application:-
- Language Independence (i.e. Developer can create their application in many languages like C#, VB, JSP and so on.
- It Supports The Code Separation Support.
- Server control.
- User Control.
- Smart Code Output.
- Easy Deployment.
- Friendly look and feel.
- Developer Edition is free.
- It only generates the necessary codes and provides the feature to comment your code.
- Very good thing about this technology is that if web server suspects some kind of memory leak or any activities which is illegal it immediately destroys that activity and restarts itself.
- Works very smooth with the ADO.net control without affecting any performance.
- Two explorer view solution and database explorer allows the user to organise and view web content and database files anytime from the root directory.
.NET allows third parties to implement other languages for the common language runtime, and there are languages numbering in the dozens, including COBOL, Pascal, and version of java for .NET. Basic meaning by saying this, it gives a chance to peoples who are coming from different world of design and programming.
JSP (Java Server Pages):
JavaServer Pages (JSP) is a Java technology that dynamically generates the HTML, XML or other types of documents for the developers in response to a Web client request. The technology allows Java code and certain pre-defined actions to be embedded into static content.
Java server pages add additional XML- like tags, called the JSP actions is used to invoke built in functionality. This technology allows the creation of the JSP tag libraries that perform as an extensions to the standard HTML or XML tags. These tag libraries provide a platform independent way to extend the web server capabilities. Java Server Pages are compiled in java servlets by JSP compiler. These compilers generate the servlets in Java Code that is compiled by the Java compiler, or it may generate byte code for servlet. It is also faster especially when it reloads the page.
Blazix from Desiderata Software, TomCat from Apache, WebLogic from BEA Systems (JSP, Servlets and EJBs), WebSphere from IBM (JSP, Servlets and EJBs).
Advantages of JSP:
- Dynamic part of the JSP is written in the JAVA therefore it is faster and well compatible with the complex applications which uses the object reusability.
- Portability to any of the operating system and web servers.
Disadvantages of JSP
- You have to know JAVA precisely in order to solve the errors.
- It does not give any suggestions while developing any application like ASP.net does.
- It needs twice a size of the disk space in order to run a page because it has to store the class file as a result in order to display the page.
PHP is the most widely used programming language nowadays on the web, more than 40% of the web applications are written in PHP. It is the simplicity what PHP makes so successful. PHP works or can be used three different ways are:
Server side scripting : To generate HTML, Graphic, Flash file
Command line : Can run from Perl, UNIX and so on...
Client side : To write cross Platform application.
It runs on all the major Operating system from Unix Linux, Mac, OS X. can be used as web server in child Apache, Ms IIS, Netscape.
PHP itself is an interpreter so it is much faster than any other language.
Advantages of PHP:
- PHP is free, fast and easy to use.
- User would not need special kind web browser or plug-ins to see the web page because of it is server side technology.
- Very big PHP community for your help and support your application and try to solve the error if you find difficulty to deal with plus they release updates rapidly.
- Platform independent so it can run on any OS.
- There code available on.
Disadvantages of PHP:
- It is UNIX based which means that when you want to deploy your website to go live, whichever company you choose you will not be able to use the windows application on the hosted server. It is a vice versa process so if you create a windows based application then PHP hosting service will not support your windows application.
- You need to have a good knowledge about UNIX admin tool in order to administer certain parts of the application this can take your good amount of time for windows user.
- As PHP is open source and hosting are cheaper so there are some chances that companies use the same server for too many websites and resulting in degradation in performance.
Content Management System:-
A content management system (CMS) manages the content of the web site. Content management systems are the primary source for contributors for interactive use. For example, Wiki is the tool which is particular type of CMS, is based in Wikipedia.
The content managed includes computer files, Image, media, audio files, electronic documents and web content. The idea behind a CMS is to make these files available inter-office, as well as over the web. A Content Management System would most often be used as an archive as well. Many companies use a CMS to store files in a non-proprietary form. Companies use a CMS to share files with ease, as most systems use server-based software, even further broadening file availability. The word “Work flow” is the idea of moving an electronic document along for either approval, or for adding content. Some Content Management Systems will easily facilitate this process with email notification, and automated routing. This is ideally a collaborative creation of documents. A CMS facilitates the organization, control, and publication of a large body of documents and other content, such as images and multimedia resources. A web content management system is also another kind of content management system with additional features to ease the tasks required to publish web content to web site.
Web content management systems are generally use to store, control, version, and publish industry specific documentation like news articles, sales guide, and marketing brochures. CMS may automatically set default colour, fonts, or layouts.
ColdFusion technology has been developed by Macromedia Company to develop the web applications whether it is dynamic or static and in addition to that you can create the web services. Just like every other technology it has its own benefits and pitfalls. Before we go any further about benefits and pitfalls let us see about the ColdFusion technology bit precisely.
Macromedia's Developer version of ColdFusion can be downloaded free from its website in two types one is ColdFusion professional version and second is Enterprise edition, just like any other technology i.e. Microsoft's front page, visual web developer 2005/2008. According to Macromedia, Developers like this technology very much because of it does not need any test server, in fact this application act like test server so once you have finished writing you can actually run on IIS or Apache, so developers were very well impressed because it saves a lot of time for them.
Advantages and disadvantages of the ColdFusion:
- There is no need for the test server.
- It saves your good amount of time because once you have finished writing the application you can test it on Apache or IIS.
- ColdFusion runs on the top of the java and it is capable of running on many operating systems.
- It is using ODBC, which gives you variety of choices to choose database.
- When you have to write dynamic application then you probably see your work messy because there will be lots of tags and it will make it more complicated to read particular error out of it.
Macromedia Dreamweaver MX:-
The latest version of the Dreamweaver by Macromedia. One of the great web application development tool. The greatest feature of the Dreamweaver is called the roundtrip HTML means that at the time of editing Dreamweaver leaves the existing site intact; it does not change or rearrange any of the code created when you edit the existing web-site. Macromedia also can create the Dynamic web pages with the help of the UltraDev 4 comes with it which supports all the well known computer languages like asp, VB, C# and so on.
And to run this software application you would only need a average level PC or laptop. i.e Pentium II or more, any operating system(no earlier than win 98), 128 RAM, 500 mb hard drive, internet explorer 4 or higher or Netscape navigator.
This software application is very easy even for beginners. I was so appreciated when I have tried it once to use it for the trying purpose just to see weather I will get a grip on it or not but unfortunately I didn't like it. There is no special reason behind it, it just the way it looks and for me to learn that and build the website from scratch was big decision.
Advantages of the Dreamweaver:
- This software is for absolute beginners and for the advance users. It comes with the build in templates so user can pick one and start working straight away. It also has capabilities to create new templates as well if users wish to.
- This software has a feature where user can see both the HTML page in design view mode and code view mode while development time.
- This software comes with the build in FTP up loader which makes so easier for user to upload files straight on to the remote server to go live.
- From the preference menu user can change the software look according to their requirement. Colour coding is another nice feature makes user to work more interactively and accurately.
- It is very simple for the advance user to insert Plug-ins, Flash code and so on with the help of commands.
Disadvantages of the Dreamweaver:
- There are enough options in editor for beginners to confuse and to lose their track.
- The Software cost is higher than other available technologies and some of the other technologies are free.
- Sooner you will lose your coding skills in HTML because it is all ready there for you.
Available Database technology:-
According to O'Reilly database is a repository of data. A relational database organizes your data into tables that are “related” to another.
When it comes to choose database, you really have to be careful because when you are dealing with big objects, audio, or video files, Microsoft access is totally ineffective, so there are several choices for someone to use SQL-Server, Oracle, DB2, Sybase, My SQL or Informix.
You can use MSDE or personal Oracle if you do not have full copy of SQL Server, Oracle, Sybase, or My SQL. The “light” version function of MSDE or personal oracle much more same their full scale parents, except that they restrict both the database size and number of simultaneous connection(MSDE only supports five simultaneous connection). Therefore, you can use them for small number of developer for developing the application.
MySQL originating from Scandinavia. MySQL includes an SQL server, client program for SQL server, client program for accessing the server, administrative tools, adn a programming interface for writing your own programs. MySQL is an open source project that can be used for free under many circumstances. It is portable and runs on any operating system application such as windows, linux, solaris, MAC os and so on. MySQL comes with lots of different features are as follows.
- It is fast.
- Very simple to learn and use.
- Support the QL (Query language).
- It is multithreaded therefore many users can connect it simultaneously.
- MySQL provides different mode to access itself for user. i.e Command line, GUI
- MySQL comes with the network feature so any one can access the database from anywhere in the world and it also provide the security function so only authorise database users can see the data.
- MySQL works on SSL protocol which is encrypted connection.
- It is portable relatively small size.
- It is open source so you can get it for free and can get support and help from its web site.
- Training classes and support are available from MySQL AB.
- Works very well with the PHP technology.
Oracle SQL developer:-
One of the great tools to design and create database. This tool is very user friendly GUI (Graphical User Interface). With help of this tool you can browse database object, you can run the queries, and you can run or edit the PL/SQL statements. Reports can be generated as well with the help of this tool.
This tool is almost look like the SQL server Management studio. You can create, modify the objects, you can query the database and update the raws from there, You can export data into different forms like XML, XLS, HTML and so on. If you have a two different database then you can compare the database schema too. Another good facility is that you can load third party database. Other options like Reporting, preferences, split screen are really helpful features.
Microsoft SQL Server 2008 express edition:
Microsoft's innovation for database developers, very nice database tool comes with the great feature like web reporting and full text search. The SQL server 2008 comes with the management studio to manage the SQL server. Main feature of this management studio is consistency throughout the use of any of the SQL server editions. It stores session data in SQL server database. There is no hassle to set up anything because it automatically does itself. If Server storing session state crashes, you can use SQL Recovery procedure to recover data.
I will not go too much deep about it as more about SQL server 2008 explained further in report.
Choosing hosting service provider:
There are number of companies out there who want you to host your web site on their web server, how would you choose which one is good one? Hmmm...Tricky...? No Let us see. What I needed to consider or take into account was the charges, they should be reasonable with prices (you can compare the price with some research).
Next thing you can do is check their web server configuration, Check what kind of service they are providing. Check with them or ask them how many web sites they are hosting on the same server? Would you get technical support?
These kinds of questions you have to consider. I remember when it was time to choose a web hosting company for me I have considered all the facts about the company budget to spend per year for hosting, Technical support 24x7, Database back up, Recovery and so on.
I am glad to say that Laptopwiz was in safe hands. There are many companies out there who are just interested to take their fees and then they get lost.I had a bad experience, I was writing my domain's control panel URL where I hosted my web site that took literally 10 minutes I was so annoyed. Anyways the hosting service I have chosen is: [http://www.webhosting.uk.com/windows-hosting.php] They support everything that I needed to run this application. Their prices are affordable and the service they are providing is excellent.
Evaluation of the current product state:
Evaluation is necessary step for me to take in order to see where I am standing with project state. It will provide me the information what have been created so far? Whatever I created is working properly or not ? What is working efficient what is not?
Website is well presented and has a professional appearance. There are no broken links. Product presentation is well presented for the customer. The site has all the information a customer would look for. Website has been checked in most of the popular web browsers and seems fine. Search box works fine and it displays the products which asked o search for. Site has customer management section (profile) where the customer can change their personal information. The customer can check their order status which is working well.
Methodology for the usability Evaluation:
From customer point of view: I given my client and my key user this product to use as a customer and I have received the feedback as follows.
Persuasiveness & cross-selling
Website is fairly attractive to customers, Customer finds product information easily, all the individual forms are working in efficient way, customer will find easy to purchase anything. If customer wants to contact my client for any reason, it will be very easy for customers to contact my client by clicking contact us form.
Navigation & ease of information retrieval
I have maximised the ease to use of the navigation control by keeping the navigation control at the top (client's request) just below the header part. Customer can get any product information in detailed easily in two to three clicks.
Page layout has been designed very well and efficient way so customer finds their way easily. I have used master page approach so customer will never get lost just in case if customer clicks on any link accidently they will not think that they are on different site.
I tried to make this product as simple as possible so customer can find any product easily, any detailed description about the product is easy to find for customer. Main importantly Customer would like it the way this site displays the product.
Content, marketing & brand
The home page has four main categories and sub categories inside them so when user visits the website user will see the main categories as laptops, desktops, parts and other (where user will find unusual parts) and subcategories resides in main category box so user will find it easy to look for any particular brand from the home page. At the end of the page there are different logo for the different companies, my client is talking to his dealer to get every single brand's product to sell. Moreover I have used the PayPal banner and sign at the bottom to shows customer that we accept the PayPal because nowadays most people trust PayPal then any other checkout.
Search usability is very well impressed functionality in this product. Search function works very efficient and give proper results so users can find what they want with ease.
Checkout functionality just works perfectly fine as it meant to work. End user can add, delete or update any product from checkout once they logged in.
From admin point of view: I have given my client and my key user this product to use as an admin and I have received following feedback.
Functionality like adding, deleting and updating works fine but my client and my key user did not like the way every time the pop up comes up and ask for the same thing like “Are you sure! You want to delete?”, “Is this the right product you want to update?” So I had to delete that function and I just left a label control saying your item has been updated or deleted and so on once the update/delete button performed it task. (I explained the reason why it is necessary to have it but neither client nor my key user liked that function but I explained the reason anyways to avoid any miss understanding later on).
Functionality of sales report (which client is not sure which one to use), adding product, main category, sub-category, updating them works perfectly fine. Client is happy with that.
So far we encountered some of the following issues which need more focusing.
- In admin section if admin adds more than four main categories the final Category goes outside and the site looks disorganized. [At the begging of the project's Main categories were defined though, maximum 4]
- I find out recently that if end user will use the current product in net book the website looks way to wide because of the 800 x 768 resolution. This issue needs fixing by changing theme automatically according to browser settings.
- Once login information inserted customer has to click on login button because enter does not work which is not professional.
Discussion and argument with client:
Very first day when I created a draft copy of GUI design, client disagree with that because client thought it is old approach and he would like to have the look of the website like ebuyer.com.
Client was not happy with the background color of the site that I have chosen but that was part of the deal that client will choose all the color and background (theme). Client has decided the background color (same as ebuyer) which will be implemented soon.
Client asked me to have functionality of adding, updating and deleting the category, subcategory and products. The functionality has been provided with the help of datalist control (the choices were given between data grid/datalist).
My client asked me to have some sort of login control so if customer wants to buy something they have to have login with this website and customer has to log in to buy any product. So I have given this functionality with the help of asp.net login control which is build in control.
I have also given the functionality where member cannot access the admin files so no user will be able to change any site information.
Client wanted to keep the website to its normal resolution because client has seen it on 1280 X 1024but when I explained my client that when you zoom out the website, the whole website was staying at left instead of staying in centre (when I did not use table). I have sorted that problem by using table and kept the table in centre. I did not use the iframe from the past experience because it has browsers issue.
I informed my client that I am working with the issue which I encountered recently regarding to look of the website in net books. Many people are using net books so I believe it is worth sorting this issue.
As a reporting tool I suggested my client to use PayPal for some time until I can develop the report with help of the crystal report (which I found very useful as reporting tool but I need to spend some time with it to understand and to implement it).
Client asked me that how I am going to publicize the website and how I will divert the traffic from eBay to their website. I was not sure first but there are many Google programs which are helpful plus paid advertise is another program always to look for, referral links is another idea that you advertise your site. Anyways, Laptopwiz.co.uk comes second in the Google search page when you write down Laptopwiz in search.
Laptopwiz.co.uk(Says under progress, once the final product is done then it will be here on this domain)
Recently client has changed his mind and now client wants the logo first then (in horizontal line) -Search -Links to login/register/shopping cart.
I have given an automated email system which functions once client place and order and paid for it. Having this functionality client don't have to worry replying to customer regarding to the order customer placed. I show my client that function will be there but they have to prepare the format for the email.
My client wanted to use their own recommended web hosting service package but that hosting service package did not support the .net technology, that hosting service was only available for the CMS, MySQL only. (The hosting service called UK2.net) I explained my client and we agree to use one which I will decide to choose. The hosting service I have right now is good, It is up most of the time the only time it takes long when they are taking backup for the data.
Microsoft's N-Tier Architecture
Microsoft's N-tier Architecture concept will be useful to the company. The Architecture comprises three tiers that consist of UI Components (first layer), Business Logic (second layer) and a Data Level (third layer). The idea behind this concept is that each level maintains its specific job and protects the layer above it. The UI is used to represent the physical structure of an application, as well displaying information to users, and providing some validation. The Business Logic is about holding and passing data between the layers ie. Data Set, it also combines data together from different places and makes any required calculations on that data. The data layer maintains database connection strings and performs CRUD functions (Create, Retrieve, Update, Delete) to the data stored in the database.
A disadvantage to this approach is it takes far longer to build an application than a 2 level architecture. This is because far more thought needs to go into coding; I am dealing with more components and need to separate code, as well code more hands on. It would be far easier to dump most of the code on every UI and finish the application quicker but this would be less beneficial to the company in the long term in regards to the advantages already stated.
Microsoft Visual studio 2008 Express Edition
Microsoft visual web studio is an integrated development environment (IDE) that I am going to use to produce my web application for Laptopwiz front-end system. The good thing about is that it provides a modern and user friendly look and feel interface with many other features that makes web development so simple and easy.
Following are the good points about the Visual studio 2008 Express edition.
- The HTML editor comes with a source and design view, which work together and updates each other in real time environment and the user is able to easily switch between the views.
- A toolbox which allows user to drag and drop common controls onto the design surface such as Textbox, Labels, Drop down list component and so on. This has solved the problem of writing code over and over again for particular item. i.e code for text box, label, etc.
- Two explorer view solution and database explorer allows the user to organise and view web content and database files anytime from the root directory.
- Underlining of syntax errors as the user is typing code, so that these can be corrected immediately and it suggests the code as well.
- Brilliant AJAX features.
However, MS Visual studio 2008 Express edition does not have any comprehensive facilities to deploy a created website to a web server. It has built in web server software that enables the user to view web pages locally.
Following are some of the deployment methods that can be used in ASP.NET:
- XCOPY Deployment (DOS Command)
- FTP Copy Website
- Deployment by VS.NET installer (.MSI)
Any of the above methods can be used for deployment on a remote server. The XCOPY and FTP Copy Websites methods are quicker and very straight forward to do than the VS.NET installer.
FTP is much easier than any other method so I will be using that because of its simplicity and it is quicker for me to rapidly upload and test my pages as I am making any ongoing progress.
I have chosen to go with the Microsoft's SQL server 2008 Express edition. Because as a web developer I will have to choose the database technology which will be easy to use and maintain plus it should be inexpensive. As a web developer I also have to keep in mind that company has very good potential to grow and in future if they decided to do something they do not have to worry about the database and issues related to the database. MS SQL server 2008 express edition comes with learning tool if you are beginner then you will not need to worry much, just follow the steps and within while you can create a database for the web application.
MS SQL server 2005 express edition comes with the Management studio which is GUI (Graphical User Interface). With this feature user can experience the consistent management to all the SQL server editions and it also has the query analysis and optimization capabilities.
Some great features of the Microsoft SQL server 2008.
It has been progressive since it came in market with the top features for Database Administration like Database mirroring, Online restore, Online Indexing, Fast Recovery, Standard based information, SQL server Management Studio, Dedicated Admin connection, Snapshot Isolation, Data Partitioning, Replication Enhancement.
Features for Development are hosted common language runtime, native XML support, ADO.net Version 2.0, Security enhancement, T-SQL(Transact-SQL) Enhancement, Reliable message for asynchronous application, Visual studio integration, web services, Embedded reporting and so on. Recently, I have finished another module and I have found out MS Visual studio has some more features like Business Intelligence are analysis service, Integration service, Data Mining, Reporting services, Clustering Support, Key performance support, Scalability and performance, Integration with Microsoft office, Proactive Caching and so on which are really nice feature for the future prediction for the business.
Special feature called the Dynamic Development includes LINQ.
Language Integrated Query (LINQ)is very important feature of a .NET Framework version 3.5. LINQ feature provides developers with a common syntax to query any data source from client applications. Using LINQ to SQL or LINQ to Entities, developers can select, insert, update, and delete data that is stored in SQL Server 2008 databases using any .NET programming language such as C# and VB.NET.
CDC (change data capture) :
Very intelligent function of the SQL server 2008
For more information in depth please check following website.
Main ASP.Net Features used in this project
1. Master Pages
ASP.NET master pages allow you to create a consistent layout for the pages in the application. There are 3 master pages for 3 sets of pages
- EBuyer.master for guest section
- Master.master for customer section
- Admin.master for admin section
2. ASP.Net Navigation Controls
Two types of navigation controls are used for navigating categories, sub-categories
- Menu Control (in header)
The blue bar with drop down menu is a horizontal menu control. The categories and sub-categories are dynamically displayed from the database.
- TreeView Control (Left panel on categorydetail page, Customer login and admin login)
The options available on the left panel are shown using the treeview control.
3. ASP.Net Login Controls
The ASP.NET login controls provide a robust login solution for ASP.NET Web applications without requiring programming. By default, login controls integrate with ASP.NET membership and forms authentication to help automate user authentication for a Web site. For information about how to use ASP.NET membership with forms authentication, the following login controls are used:
- Login Control (On LoginRegister page)
The Login control displays a user interface for user authentication. The Login control contains text boxes for the user name and password and a check box that allows users to indicate whether they want the server to store their identity using ASP.NET membership and automatically be authenticated the next time they visit the site.
The Login control has properties for customized display, for customized messages, and for links to other pages where users can change their password or recover a forgotten password. The Login control can be used as a standalone control on a main or home page, or you can use it on a dedicated login page.
- LoginView Control (In header where login/logout/username is displayed)
The LoginView control allows you to display different information to anonymous and logged-in users. The control displays one of two templates: the AnonymousTemplate or theLoggedInTemplate. In the templates, you can add markup and controls that display information appropriate for anonymous users and authenticated users, respectively.
Create User Wizard Control (On LoginRegister Page)
The CreateUserWizard control collects information from potential users. By default, the CreateUserWizard control adds the new user to the ASP.NET membership system.
The CreateUserWizard control gathers the following user information:
- User name
- Confirmation of password
- E-mail address
- Security question
- Security answer
This information is used to authenticate users.
ChangePassword Control (Customer Login - Change Password option)
The ChangePassword control allows users to change their password. The user must first supply the original password and then create and confirm the new password. If the original password is correct, the user password is changed to the new password. The control also includes support for sending an e-mail message about the new password.
The ChangePassword control includes two templated views that are displayed to the user. The first is the ChangePasswordTemplate, which displays the user interface used to gather the data required to change the user password. The second template is the SuccessTemplate, which defines the user interface that is displayed after a user password has been successfully changed.
The ChangePassword control works with authenticated and non-authenticated users. If a user has not been authenticated, the control prompts the user for a login name. If the user is authenticated, the control populates the text box with the user's login name.
4. ASP.Net Data Controls
The following data controls are used the project (All pages where data is displayed)
- Data List Control
The DataList control is a data bound list control that displays items using templates. Use the DataList control to display a template-defined data bound list. The DataList control supports selecting and editing. The contents of the DataList control can be manipulated by using templates. The DataList control is useful and well suited to sites that have content focusing on the selling of products. One is able to build rich product catalogs with relative ease using the DataList control.
5. ASP.Net Membership, Roles and Security
ASP.NET membership gives you a built-in way to validate and store user credentials. ASP.NET membership therefore helps you manage user authentication in your Web sites. You can use ASP.NET membership with ASP.NET Forms authentication or with the ASP.NET login controls to create a complete system for authenticating users.
ASP.NET membership supports facilities for:
- Creating new users and passwords.
- Storing membership information (user names, passwords, and supporting data) in Microsoft SQL Server, Active Directory, or an alternative data store.
- Authenticating users who visit your site. You can authenticate users programmatically, or you can use the ASP.NET login controls to create a complete authentication system that requires little or no code.
- Managing passwords, which include creating, changing, and resetting them. Depending on membership options you choose, the membership system can also provide an automated password-reset system that takes a user-supplied question and response.
- Exposing a unique identification for authenticated users that you can use in your own applications and that also integrates with the ASP.NET personalization and role-management (authorization) systems.
- Specifying a custom membership provider, which allows you to substitute your own code to manage membership and maintain membership data in a custom data store
Membership, Roles and the User Profile
Although membership is a self-standing feature in ASP.NET for authentication, it can be integrated with ASP.NET role management to provide authorization services for your site. Membership can also be integrated with the user profile to provide application-specific customization that can be tailored to individual users.
Many websites that provide user accounts need to group users in various roles. The roles a user belongs might specify what web pages they have access to, what information they see on the screen, and whether or not certain regions in a page are editable or view-only. Grouping users into roles and basing functionality and authorization based on a user's role is quite easy in ASP.NET thanks to the roles service. Like the membership service, the roles service defines a framework for programmatically creating and deleting roles, assigning and removing roles from users, and determining what users belong to a role, and to what roles a user belongs.
Two roles are defined in this project
The folder ‘Member' corresponds to the role ‘Member' and the pages within this folder can be accessed only by the users that belong to ‘Member'role.
The folder ‘Admin' corresponds to the role ‘Admin' and the pages within this folder can be accessed only by the users that belong to ‘Admin'role.
Access rules have been defined through the ‘Website Configuration' to secure these folders and pages.
Name - Name of the category
b. Stored Procedures
- GetAllCagegories - To get all the available categories for a given parent category
- GetCateogories - To get all the available categories
- CategoryInsert - To insert a new category
- CategoryUpdate - To insert a new category
- GetImageById - To get image in binary format for an image id
- ProductLoadAll - To get all the available products
- GetProductForCategory - To get products for a particular category
- GetProductDetailById - To get products for a selected product Id
- SearchProduct - To get products based on a search criteria
- ProductUpdate - To update a product
- ProductInsert - To insert a new product
- ShoppingCartItemLoadByPrimaryKey - To Get shopping cart items by primary key
- ShoppingCartItemLoadByCustomerSessionGUID - To Get shopping cart items for a customer's session
- ShoppingCartItemUpdate - To Update shopping cart items
- ShoppingCartItemInsert - To Insert items to shopping cart
- ShoppingCartItemDelete - To delete items from the shopping cart
- GetOrdersByCustomerId - To get orders for a user id
- GetOrdersDetailsByCustomerId - To get order details for a user id
- GetOrdersDetailsByOrderId - To get order details for an order id
- OrderBaseInsert - To insert customer information
- OderDetailInsert = To insert Order Detail information
- GetCustomerInfoById - To get customer details by user id
All stored procedures starting with ‘aspnet' are created by asp.net by default when asp.net membership and role provider feature is used using the ‘ASP.NET Configuration'
2. Asp.Net Pages (UI)
There are 3 main set of pages.
- Guest - All pages except ‘Member' and ‘Admin' folder
- Customer - All pages in the ‘Member' folder
- Admin - All pages in the ‘Admin' folder
Each section has a separate master page.
- Guest - Ebuyer.master
- Customer - Master.master
- Admin - Admin.master
The flow within the guest project pages is as follows:
- Homepage - (Displays all available root level categories and sub-categories are shown as drop down in the menu and as links in the main category boxes)
- Category Detail - Displays list of products for selected category
- ProductDetail - Displays product information in detail for selected product
- ShoppingCart - Displays the items in the shopping cart
- Checkout - Displays the items in the shopping cart before proceeding to checkout. User can update/remove the items from the cart from this page. This page is also displayed when the ‘Shopping Cart' link is clicked from the header.
- SearchResult - Displays the products that are found using a search criteria
- LoginRegister - Displays the login and register screen for login or new user registration
The flow within the customer pages is as follows:
- LoginRegister - Customer Logs in
- CreateProfile - Customer creates profile
- ViewOrders - Customers can view finalized orders
- ViewOrderDetails - Customer can view order details for a selected order
- OrderProcessing - Customer can finalize order
- ChangePassword - Customer can change password
The flow within the admin pages is as follows:
- LoginRegister - Admin logs in
- CategoryMain - Manage Category page, admin can edit categories
- CategoryNew - Add new category page, admin can add new category
- ProductMain - Manage Product s page, admin can edit products information
- ProductNew - Add new product page, admin can add new product
3. Business and Data Layer
Functions are written in EBuyer.DataLayer to access information from the database using stored procedures.
The functions written in DataLayer are called from eBuyer.BusinessLayer to show the relevant information on the aspx pages.
Why CSS? (Cascading Style Sheet).
I encountered writing CSS is very good approach to any of the web site because that is only one file you write your code in and the whole website reacts according to that (look wise). There are some benefits you can take advantage of as follows.
- Edit in one single file results straight to the website look.
- CSS lets you output to multiple formats quickly.
- CSS is self-describing. User can give any name for the page elements, class and so on. i.e. Header, footer and so on.
- Very quicker for the browsers because it increases the load time.
- CSS makes a life easier for the website designer by not having messy code in files.
- Much better than HTML.
- In order to have valid XHTML Strict CSS is necessary to use.
CSS code can be difficult to understand for the person if not handled properly or named properly, especially for beginners. CSS code can easily mess up the whole look of the website within second by changing a one value in the file. i.e Width of the website from 1000px to 800px will may result in scattered elements in website unless and if values has been changed for every element accordingly.
This code above is for the header menu. .Menubg1 going to display the menubutton horizontly with menubut.gif image with height, fontsize, color and so on. .menubghover us the code for the dropdown menu, when you click on the main category and subcategory displays while your mouse is on the subcategory, now when you move your mouse over to the sub category .menuhover class shows its artifacts. i.e. subcategory width will be 165px, height is set to auto, font-size is going to be 0.9em, background color is :#FF9933(kind of orange) and so on.
Following code saves the image data into the database and if there is no image then it will automatically saves the “noDefaultImage3.gif” into the database.
“Robbe Morris” benchmarking work, according to him generic handlers are 5-10% faster than ASPX web forms that do the exact same operations—even without server controls.
This file contains the main settings and configuration of this project in XML format. So let us see some of the important code.
These validation components are provided by ASP.NET and have many useful features to help with validating input. Below are the validation controls that I will be applying to my web application when making UI validations for inserting, updating any data.
Required Field Validator
This control ensures that all necessary data has been entered. It does not check against what data is entered but it flags up an error if the is empty. It is an affective and simple method for getting user's who may have missed or left out input, to input data into the controls that are required.
Regular Expression Validator
This can be a fairly complex validation method to apply as it deals with the constraints of a specific format of a control using expressions. Visual studio provides some pre-defined validation that can be used for the control but it may only be limited to UK. i.e. postcode(It may be limited to UK because every different country has their own postcode so if developer builds an application for US he needs to make his custom format), date format and so on. It is very sophisticated control to use and it does work very well. To display what order or format user needs to enter the data, ErrorMessage property of this component is useful.
This component ensures that the input of one control matches another before the input is accepted. The common input boxes that this validation control can be applied to is for example password or/and e-mail, where it will compare two entries to ensure they are the same. I have used this controller at the time of customer registration for choosing the password (both password and retype password field has to be same).
Following screen is an example of payment setup with PayPal. This facility from PayPal is absolutely adorable because to set up PayPal payment system is very easy with this wizard.
you would select the language that you want your code files in. i.e. JSP, ASP, .net with C# or VB and so on. Then you have to add the url that you want PayPal to redirect once the transaction has been done successfully or for the cancelled transaction Next thing you need to select is the payment type and finally you need to select the country for the revenue. Then you have to click on generate and next and PayPal will take you to the next screen.
Download these files to your shopping cart web directory. Put your API Username, API Password, and Signature in the PayPalfunctions code file where the comments instruct you to do so. Insert the code snippet given in the textbox.
Download the following files:
PayPal Sandbox expresscheckout.aspx
PayPal Sandbox expresscheckout.aspx.cs
PayPal Sandbox APIError.aspx
PayPal Sandbox APIError.aspx.cs
PayPal Sandbox PayPalfunctions.cs(Please save this file into the AppCode sub directory of your .Net web app)
Save the total payment amount in a Session variable named “Payment_Amount”. The code inside the ExpressCheckout file is designed to read from this session variable and pass as input to the API call.
Insert the code snippet given in textbox which will trigger when user will select the PayPal as a payment option. (In my case, this project only has one option PayPal).
To pass the shipping address entered, replaced the shipping address placeholders in the code snippet with variables representing the shipping address from PayPal.
Save the total payment amount in a session variable named “Payment_Amount”. The code inside the ExpressCheckout file is designed to read from this session variable and pass as input to the API call.
Insert the code snippet where your cart is handling the order review.
Display the shipping address returned in the code variables on your order review page.
Save the total payment amount in a session variable named “Payment_Amount”. The code inside the ExpressCheckout file is designed to read from this session variable and pass as input to the API call.
Insert the snippet from the textbox to the order confirmation page.
Now after finishing uptp here the final stage is to implement what we got as a code.
Following screen is basically explaining the flow of the PayPal checkout and payment system works:
As you can see above once buyer click on the PayPal express button, the user get redirected to the PayPal login screen where user enter his detail and pay for the order and get the confirmation.
Following screen explains the flow of the payment system as an option with PayPal.
Above screen shows that if there are more than one payment options available and PayPal is one of them then the flow is little different. If user does not have account user has to add all the information like delivery address, card details and so on.
Reason for choosing asp.net :-
The very first reason was the amount of time we had and amount of time we agreed to develop the product was not sufficient to learn new language and implement it. To provide professional product you need to be professional in developing and my professionalism was in ASP.net.
To choose any of the web technology things that I as developers needed to consider was the requirements of the company, which technology provide the best service according to the client's requirements? How much time it will take to fulfil clients' requirements with that technology? What will be the total cost of the project/finished product by the end? I think for the company, cost and quality is most important. All these companies would like to have high quality work with lowest or reasonable price which I can understand, so I had to consider those points.
As I mentioned before about the basic advantages apart from that it has given me flexibility and it saved my time writing very long code. i.e To create calendar or textbox or any other instance.
Microsoft Visual studio 2008 Express edition comes with the lots of features allow developer to use two different view options where you can switch between two windows. i.e. Code window and design window therefore there are very few chances to have the compilation error because you can see the error straight away in the error window and solve it there and then.
Asp.NET has its own administration site which has potential to handle and allow developer to create the role and rights for user of the website which is a very good bonus feature. Given drag and drop option it is great fun to work with. i.e Textbox, Lable, Image controller and so on.
As I mentioned earlier that .NET supports many different languages like Jsp, VB, C# and so on, so it is fairly easy for developers who have very good knowledge of the programming language. I have spend good amount of time and worked well with VB, so I feel this technology more familiar and that was one of the reason made me to choose ASP.NET with VB.
I have enjoyed all the features provided by this technology and I am hoping to use them more when the time comes to do big and tricky job with current project.
There are lots of expertises available in the world full of web developers to help you or to take your web application further as and when required because they will already be aware of the languages supported by .NET.
Advantages & disadvantages for the Company
- First of all by making the decision to develop website it will save company lot of eBay fees, once final product is done.
- Company does not have to pay to install web server because it is based on Microsoft.
- My web application has flexibility for the data entry operator so he/she can enter/update data and work from home anytime.
- My product is not messy (not with lots of advertises and graphics) and has less graphic work so client's customer will get this website open in 2-3 second max. According to [http://www.websiteoptimization.com/services/analyze/ ]. Unless and if hosting provider doing some sort of backup.
- Customer can get information about any product very quick and easy.
- Regularly data backup will prevent the data loss.
- Database technology is Microsoft SQL server 2008 express edition so there is no cost to pay for licensing as it comes free unless and if company needs more functionality, more security functions and if they increase data they would have to buy standard version which is about 500£ to 600£. [http://www.nextag.co.uk/Microsoft-SQL-Server-2005-87393128/uk/write-reviews-html]
- In future, company would not have any problem using AJAX technology which is a very favourite nowadays. It will be helpful for the customers to search different products very quick.
Things that I have learn from this project:
- Proper way to name the different controls. i.e TxtName for the textbox, LblName for the label and so on.
- Working in professional environment you get challenging customer most of the time especially for small things like colour, types of table, fonts, type of template you are using, types of form, design of the form and so on.
- When client see's different web sites they want to make their own website that way or something like that which is not an impossible task but time consuming which I had to do many times.
- While I was in university my database setup task had been done by “Dave Polad” as Database administrator because i did not have any access but this time I was administrator by myself so I was responsible for the entire task from beginning to end. I had to buy domain, I had to redirect the domain name to my hosting site where my all web pages were reside, that was trick (Well I followed the method and it worked).
- I had to prepare all the time to change my Idea to their changing view (Client accepted it first time but then asked me to change when they see something new so there was no static way to do application).
- Why I select particular technology when there are lots available out there.
- How much time and cost will take place for the next project.
- Different search engine techniques.
- I have learnt the techniques to keep the web application consistent so user will not lose their track.
Recommendation for JSP, CMS or Other Languages:-
I have finished my module called Internet Application development during end of the year 2007, I found it very interesting, I knew nothing about Asp.net and SQL server 2005 before but having the knowledge from my very good tutors (Mr Joe. Wilkinson, Andrew Montgomery and Niel Morgan) about the web technologies like ASP.net, CMS(Content Management System), PHP, Joomla and so forth. I have decided to do my module work in ASP.net with VB which was really interesting and challenging which led me to learn many things about asp.net with MS SQL server 2005 database at backend. My current project can be done in CMS like Joomla, Sharepoint, PHP or may be other technology like Macromedia's ColdFusion or the Dreamweaver or Microsoft's FrontPage but I decided to take asp.net with SQL to improve my knowledge further and to face real time difficulties in real world.
I did plan to learn PHP but for some reason I did not get time to finish that requirement for myself.
I would like to suggest that any web developer in the world to learn and make use of another web technology for any web application considering one thing in their mind that as long as they are satisfying company's requirements, cost and time they are on safe ground.
I have tried using Joomla which was real fun during my module Internet Application Development, it has great features like readily installed templates, so you just have to change some of the content details and you can publish your website and it is licence free (Open Source) so there is no worries about licensing cost. But because of not having sufficient knowledge about database connection with CMS (Content Management System) I didn't want to go ahead and end up with big Problems. I went on the road where I knew the consequences rather than experimenting with something new and letting down the company at high cost, time and risk. It is a debatable argument where I could have said that “I am going ahead starting this project with PHP, Joomla, Dreamweaver or anything else”. Maybe I end up with nothing, maybe something or maybe everything could work, I wouldn't know but I would have gained some knowledge at the end and that is an important asset.
It was not possible for me to take the experimental step and gain knowledge because it was not a fictional scenario. It is an actual company who expect certain work within a certain time from me.
PHP is another powerful option to go with. I am absolutely positive to learn it as I mentioned earlier more than 40% of web based application written in PHP and my next project is PHP based. I also would like to learn the sharepoint and Joomla.
What would have happened if project got done with CMS (Content management system) technology.
I have spent two weeks learning joomla part time during my project because I had an argument with one of my friends. My friend was saying joomla is the best technology and nothing can compare to joomla, no other technology can beat joomla and so on. I was quite surprised, I was saying same thing for the .net technology.
In those two weeks I actually installed joomla on server, I learnt to install themes on joomla and also I went through different extensions. One day I was surfing the extension site(source unknown) and I encountered virtuemart.net website who provides the e-commerce solution. I downloaded and installed on the joomla. I got an error and I did not have a clue what was the error so I uninstalled everything and installed it again and this time everything worked out. I changed some of the code from CSS file and developed a site for laptopwiz (A complete dummy site).
I did not realise that I can develop a website that quick. This is only two weeks work. Please see the www.laptopwiztech.co.uk. I might be able to provide documentation.
I have to admit if any error would of taken place at that time I would not have had a clue what or how to solve it.
I like my .net tool at least I can rectify where or which position the error is and i can solve it.
The project would have been done very quickly with risk to my client.
Surprisingly this website works perfectly fine with no error at the moment. Payment option is ready and website look absolutely professional. In fact my client asked me that he might like to use this CMS site for new products and sell expensive items here.
Future plans of the company
- Company might like to add more payment system.
- Company would like to add the blog system which might be able to help customer choosing the product.
- Company also would like to have rating system for the product which can help customer and my client to find out the quality of stock.
- Company would like to add the Skype facility in future to discuss the online queries or QA (questions and answer).
- Might add some code system where customer get special discount.
I have taken much care to make this application user - friendly and interactive as in inviting look. I am sure that further development in “Laptopwiz web application”, would be useful to the end users and surely It will help my client's business as in more customer will be attracted and calling in.
The main purpose of the application was to cut the eBay price totally which I think the end product will do.
When I was making this application, I have come across the problems and solved them. There were some issues I come across which I think I can solve by doing some research explained above in report. This project really has increased my knowledge. I would like to get in to the real depth of the asp.net/vb.net/C#. Being part of the project and working with .net technology with c# and Microsoft SQL server, I think visual studio is very potential product to develop any web application.
I am not neglecting any of the other available web technology and not saying they are not good but technology has grown so much that sometime web designer have to pull their hair and ask themself which technology to choose because considering all the factors (like company budget, time, Company's requirements and so on) many technology can do the task so my opinion is that it is down to personal choice. No web technology has been proven to be 100% perfect for web application development.
I am glad to say that Laptopwiz is satisfied with the current state of the product and I am sure they would be totally satisfied when they will get to see the final product.
Lastly, I heartily thankful to my tutor Joe Wilkinson who helped me to direct in the right direction and gave me all the support I needed.
Any suggestion to make this project more useful please do let me know your comments.
Bibliography means that I have referred some books and web references writing this essay; it helped me in different ways to give me proper guideline.
- Deitel, H., Deitel P., Nieto, T. 2001. E-Business & E-Commerce How to Program.USA. Prentice Hall.
- DuBois, P., 2005. MySQL-The definitive guide to using programming and administering MySQL 4.1 and 5.0. Third Edition. USA. SAMS publishing
- Friendlein, A., 2001. Web Project Management - Delivering Successful Commercial Web sites- UK .,Morgan Kaufmann:
- Forta, B., Hove, S., 2000 ColdFusion Express- in 24 hours. United States. SAMS Publication
- Grimer, T,. 2004. Students' Essential Guide to .NET.UK. Elsevier publication.lication.
- Jones, R.,2006. Mastering ASP.NET with VB.NET.India. BPB pub
- Miller, M., 2007. Google. Pedia The ultimate Google Resource- UK .,Que Publishing
- Londer, O., Bleeker T., Coventry, P., Edelen, J. 2005 Microsoft Windows SharePoint Services.USA. Microsoft Press.
- Pizzi, M., Ruvalcaba, Z., Macromedia Dreamweaver MX 2004 UNLEASHED. Second Edition. United State. Addison Wesley
- Scanlon, T., Snyder, C., Schroeder, W., DeAngelo, T., 2004. Web Usability- A design Guide - CA. Morgan Kaufmann
- Sklar, J. 2000. Principles of Web Design. Canada. Course Technology Thomsan Learning.
- Microsoft ASP.net Videos [http://www.asp.net/LEARN/videos/] Accessed at 26/08/09, 8/09/09. 13/09/09
- ASP.net Forum -Validation Mac Failed. [http://forums.asp.net/p/955145/1173230.aspx] Accessed at 26/09/09
- Paypal Integration http://integrationwizard.x.com/ecpaypal/main.php Accessed at 9/10/09
- LINQ understanding http://www.csharpcorner.com/uploadfile/nsatheeshk/linq06302006030119am/linq.aspx 9/10/09