The motivation to develop Real Estate Web Application comes from my urge to learn Visual Studio .NET 2005 for building the business logic of the application, SQL server 2005 for database designing and using new web technologies like AJAX, Java Script for website designing. The most influential factor for selecting this application is to add some innovative features to the search engine of a Real Estate Website which can make the task of a property buyer easy to search for property listings. The most significant feature in these websites is the interactive search criterion which lets the buyer specify their requirements to get the correct set of records from the database. The search tool should be strong enough to include all the required features which a buyer may desire. Also, each search requires a post back call to the database to retrieve some set of records but making the website AJAX enabled prevents the annoying post backs. Thus, each call refreshes just the data grid to display the listings rather the whole web page. Some other new features like drag and drop tool to save the listings, retrieving related results for each search, etc make this application more feature rich.
Introduction
I. INTRODUCTION
This application provides a wide scope to include number of web controls to develop the search engine and allow them to implement using AJAX functionality. Performance of the search engine is the main factor which allows the buyers to search for listings with different combination features. Growing buyer needs should be taken in to concern with the new features to be included. Another challenge in this application is the effective storage / retrieval of property images from the SQL database.
Thus, the development of powerful search engine, displaying detailed summary of listings on the customized grid and drag - drop tool to select the properties are the main motivations for the project. The features of the existing systems reveals another problem, when the user tries to save some property listings; the user is forced to login as a buyer/user of this website. Once the user logs-in, he can then view this saved list. In contrast, this application uses the session state to maintain the list of saved property listings rather than making the user register first. As soon as the user performs a search, a new session is created and then lets the user select a listing, drag and drop it to the “Saved Search” tool. This tool then keeps track of this list until the session expires.
II. PROBLEMS WITH EXISTING SYSTEMS
The purpose of creating this Real Estate Web Application is to outcast the discrepancies in hundreds of such existing systems on the World Wide Web. One of the basic problems with the existing systems is the non-interactive environment they provide to the users. Most of the applications involved in Real Estate business use some web template to put the content specific to their company and make it communicate with the database to search the listings. These templates simply use basic web controls to do this task making the web page non-interactive. On the other hand, the motive of this Real Estate Web Application is to allow the user to play with the search tool and create different combinatorial search criterion to perform exhaustive search. Another problem in such applications designed so far is the use of traditional user interfaces which make continuous post backs to the server; each post back makes a call to the server, gets the response and then refreshes the entire web form to display the result. This scenario adds an extra trade off causing a delay in displaying the results. Making such applications AJAX enabled gets rid of these unnecessary delays letting the user to perform exhaustive search. The users of this application can easily feel the difference between the Ajax- empowered user interfaces vs. traditional user interfaces.
III. OBJECTIVE
The foremost objective of this project was to give a different visualization style to the Real Estate Website which has more features, attractive animations and all together a new look in contrast to the already existing websites. Usually in a real estate website, the property search page consists of traditional search style i.e. a set of textboxes / drop-downs to select a particular county or MLS# for the property to search along with other web controls to specify the number of beds / baths or any additional features they are looking in the property. In contrast, this website provides altogether a new visualization of the search page i.e. AJAX enabled controls with no post backs and additional functionalities like sliding bars to select the number of beds, baths, footage and price, drag and drop functionalities, animation enabled collapsible styles, etc.
The next objective of importance was to build an AJAX enabled real estate website which not only reduces the annoying post backs and loss of control focus, but also gives a faster and more interactive user interface. Moreover to make the website more features rich, features like customized grid, drag and drop tool, accordion panels and sliding bars were added to the website.
IV. ARCHITECTURE & TECHNOLOGIES
A. Architecture
The Real Estate Web Application is built using a layered architecture where the total functionality can be divided into layers having different functionalities. The main layers include the database access layer, business logic layer and the presentation layer. Thus, this application follows the 3-Tier Architecture. The System Architecture is explained in detail in the further sections of this document.
B. Technologies
This chapter includes the details of the latest technologies and tools used to build this application, their benefits and implementation details. The chapter also describes the interaction of these tools with the .NET Framework.
C. Tools and Technologies
The latest tools and technologies involved in building this website are: ASP.NET 2.0, Microsoft Visual Studio 2005, ADO.NET, SQL Server 2005, AJAX and Java Script.
V. SYSTEM ARCHITECTURE
The architecture of the system is based on the three-tier architecture. There are three logical layers: the Presentation Tier, the Business Tier, and the Data Tier. Each layer in the system is a reusable portion of code that performs a specific function. These layers are not only responsible for performing these functions but also interact with other layers to perform specific goals [4]. Like, in this application when the presentation layer needs to extract information from the backend database, it would utilize a series of layers to retrieve the data, rather than having the database calls embedded directly within it. The ASP.NET web site/web form is called the presentation layer because the content within it is viewable to the users of the site.
The middle tier called the Business Tier communicates between the presentation tier and the data tier. As mentioned above, the Presentation Layer could communicate with the data access layer directly, it usually goes through the business layer. This layer then validates the input conditions before calling a method from the data layer. This ensures the data input is correct before proceeding, and can often ensure that the outputs are correct as well. Most of the business logic of the application lies within the business layer, which makes this logic reusable across applications. This layer helps move logic to a central layer for “maximum reusability.”
This scenario can be explained as, when the buyer makes a request to search for a particular property listing in a particular area (specified by the zip code/city/state/MLS#); the business layer passes this information to the database in the form of a query. The database retrieves the data corresponding to the query and submits the results back to the presentation tier for display. The Figure 4.1 shows the three-tier architecture of the Real Estate Web Application.
VIII. FUTURE EXTENSIONS TO THE PROJECT
This project is developed as a master’s project and still gives lot of scope for its extension which could be made to the project if it is going to be developed as commercial product. We can use pure object-oriented domain model to deal the database access tier using Visual Studio 2005 and SQL Server 2005. In doing this, we can get a better architecture design which will improve code efficiency and running performance. Besides, we can build XML web service programming model that enables other applications to consume real estate web services built by us using standard protocol such as HTTP, XML, XSD, SOAP and web services description language (WSDL). This project just deals with the Home page and Search page to search for property listings, more functionality can be added for searching the agents and offices making it a complete application. The feature of providing Google Maps within this application adds up to the functionality of the website. With the advancement of technology, dynamic maps can be generated using AJAX which can help the buyer locate a particular area where the property is located in the Google Map. Inclusion of all these features would make the application feature rich. The advantages of putting these functionalities in the project are described in detail in the following sections.
Conclusion
This Real Estate Web Application is a typical .NET web application using ASP.NET 2.0 and SQL 20005 in the C# programming language. It uses a client/server architecture based on the HTTP protocol. It is developed in Microsoft’s Visual Studio .NET programming environment. The buyer performs a search for the property listings by putting either Zip code/City/State or MLS# in the search textbox. The business logic tier communicates with the database tier requesting the results of the query sent by it. The results obtained by the database are displayed on the data grid, by refreshing the grid rather than refreshing the entire web page. Efficiency of the application is improved by the use of web methods that help in separating Application Tier from the Presentation Tier. The performance of this application is evaluated by rigorously testing it against various test scenarios. Efficiency and correctness of the application is evaluated with the help of various test cases. Some ways in which this system could be enhanced with additional functionalities are discussed in the section.
References
[1] ASP.NET and Web Development Overview, http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
[2] Microsoft Visual Studio Overview, http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_2005
[3] Microsoft SQL Server 2005, http://en.wikipedia.org/wiki/Microsoft_SQL_Server
[4] 3-Tier System Architecture, http://en.wikipedia.org/wiki/Multitier_architecture
[5] Introduction to ADO.NET, http://en.wikipedia.org/wiki/ADO.NET
[6] Load Testing using Apache JMeter Testing Tool, http://jakarta.apache.org/jmeter/
[7] Introduction to .NET Architecture, http://www.devtopics.com/what-is-net/
[8] Common Language Infrastructure Definition, http://en.wikipedia.org/wiki/Common_Language_Infrastructure
[9] AJAX – Bridging the Thin-Client Performance Gap, http://www.ironspeed.com/articles/ajax-bridging%20the%20thin-
[10] client%20performance%20gap/article.aspx
[11] 3-Tier Architecture http://www.c-sharpcorner.com