Designing Multiplatform Web Applications Using.NET

Size: px
Start display at page:

Download "Designing Multiplatform Web Applications Using.NET"

Transcription

1 Designing Multiplatform Web Applications Using.NET Sheikh Tabish Mazhar M.Sc. Information Systems Session (2004/2005) i

2 Abstract As the world has turned into a global village through the use of internet, and most of our day to day business is transforming to World Wide Web by the use of information technology, new devices are joining the show with amazing capabilities and functionalities. These devices are portable, extensible and state of the art. It is every enterprise s dream to reach world wide to every customer using a networked device. Mobile phones, PDAs, laptops and the future devices are to be accessed by our web applications. This report discusses the possibilities presented by Microsoft.Net to design multiplatform web applications. Discussing the history, existing solutions and then presenting new solution is the scope of this report. This report also takes a real life case study to prove the claims made by the author of this report and hence Microsoft.Net ii

3 Acknowledgements In the name of Allah the Most Beneficent the Most Merciful, I dedicate this report to my parents Sheikh Mazhar Iqbal and Mrs. Shagufta Mazhar, and to my ideal, my grandfather Sheikh Muhammad Iqbal. I thank my teachers at University of Leeds for providing me the guidance I required, the knowledge I seek and making me realize the things I couldn t find on my own. Specially, my project advisor Mr. Owen Johnson and my assessor Professor Jie Xu. I would also like to thank the members of the focus group Mr. Kevin McKenzie, Miss Asha Parekh and Mr. Imran Muhiyyudin for helping me carrying out the evaluation for the project and providing me their useful feedback. iii

4 Table of Contents Chapter 1: Introduction Introduction Problem Definition Project Aim Objectives Functional Requirements Deliverables Software Engineering Methodology Waterfall Model Rapid Prototyping Technique Spiral Model (proposed methodology) Project Schedule... 6 Chapter 2: Literature Review Platforms, Capabilities, Issues Platforms Homogeneous or Broad Classification Hybrid Classification Capabilities Issues Write Once Use Anywhere Analysis of Existing Solutions iv

5 Chapter 3: Microsoft Asp.Net Mobile Controls Microsoft.Net Microsoft Smart Device Extension (MSDE) Microsoft Asp.Net Mobile Controls Asp.Net Architecture Asp.Net Mobile Controls Chapter 4: Bradford Home-Hunter: Selected Case Study Introduction Existing Solution Revised System Requirements The Challenge Chapter 5: System Implementation & Issues Resolution Introduction User Interface Issues Device Input Issues Device Output Issues Handling Different Screen Sizes Handling Multimedia & Graphics Handling Other Issues Network Capability Issues Security Issues Extensibility Issues Extensibility to New Devices Writing new Controls for Existing Devices Conclusion v

6 Chapter 6: System Testing and Evaluation Evaluating Project Requirements Minimum Requirements Extensions Evaluating User Requirements Application Developers Requirements End User Requirements Evaluation of Technology XSLT Java Usability Testing Accessibility Testing Test Case 1: Testing Special Controls Test Case 2: Testing & Evaluating Application Security Cookie-less Sessions Cookie Enabled Sessions Conclusion Test Case 3: Testing & Evaluating Asp.Net Mobile Controls Conclusion and Further Work References...59 Appendix A Personal Reflections Appendix B Screen Shots for Bradford Home-Hunter Web Application Appendix C Guidelines for multi-platform web application development using.net Appendix D List of Devices supported by Asp.Net Mobile Controls Appendix E Objectives and Deliverables Form Appendix F Marking Scheme and header sheet for the marked Mid Project Report vi

7 Chapter 1 Introduction 1

8 1.1. Introduction As the world has turned into a global village and most of our daily business is transferring to World Wide Web, new devices are connecting to internet with astonishing capabilities and functionalities. These devices are portable, extensible and state of the art. According to a survey [1] carried out in March 2002, the number of wireless internet users is approximately half of the wired internet users in the world. These wireless users access internet through their Mobile Phones, PDAs or Laptops. Figure 1.1 projects that the number of wireless internet users will increase than the wired users by Global Internet and Wireless Users Subscribers Internet users (millions) ,460 Wireless Internet users as % of all Internet users Figure 1.1 The interesting fact is that even when the mobile internet users were about half of the wired users till 2004, yet they belong to diverse backgrounds and age groups and include the people who don t even utilize a Personal Computer (PC). These facts really attract a solution developer to design their internet web applications into a format which can run on any platform or device and accessible to new potential consumers in the world Problem Definition The main objective of this project is to overcome the technical challenges associated with multiplatform web application development. This process includes several issues and complexities. The project addresses these technical challenges and to specify how these challenges can be conquered. Although the Project concentrates on Microsoft.Net based 2

9 solutions, it also briefly touches existing possibilities and debates why they are insufficient to propose a complete solution Project Aim To explore the potential of.net to resolve user interface and architectural issues associated with multiplatform web applications, by implementing a Case Study for Bradford Home-Hunter Housing Trust Objectives The project has the following objectives: To propose architecture which will support applications running on multiple platforms and which is extensible to new devices. To develop an extensible architecture to support new devices using the.net framework. To implement this architecture by extending a prototype for business web application. To test the architecture on a number of devices and suggest future enhancements 1.5. Functional Requirements Here is the list of minimum functional requirements for the project: 1. A report outlining the key challenges associated with Multiplatform Web Applications. 2. Proposals for Multiplatform Web Application development using.net 3. Prototype of a Bradford Home Hunter application which can run on at least three platforms for example PDA, Mobile Phone and Personal Computer using World Wide Web Deliverables Following is a list of deliverables for the project: 1. A project report outlining the key challenges associated with multiplatform web applications. 2. Prototype for Bradford Home-Hunter as a proof of concept. 3

10 1.7. Software Engineering Methodology Software Engineering methodologies are an aid for comprehensive and well documented development of a software project. These methodologies assist the development team to improve project efficiency and quality. For this project I have decided to employ spiral modeling technique which combines two of the most famous software engineering methodologies i.e. waterfall modeling technique and rapid prototyping technique. Let s take a brief look at these methodologies: Waterfall Model Waterfall model is the classic approach for software development. It divides the system development life cycle into a linear sequence of stages in which each stage must be completed before the next stage begins. These stages are requirements gathering, system analysis, design, implementation and testing. The advantages of waterfall modeling technique are that, it is easier to define and manage a project into well defined milestones [2]. These milestones have a clear deadline which ensures on time delivery of software product. The disadvantages of this scheme are that, it does not allow iterative reviews and it can not cope with changing user requirements [3] Rapid Prototyping Technique The Rapid Prototyping Technique (RAD) is suitable for changing user requirements throughout the development of software project and also for quick delivery of solutions. It offers two flavors for project management i.e. Throwaway Prototype and Evolutionary Prototype [4,5]. In Throwaway Prototyping, a prototype is developed quickly and presented to the clients or users of the system. Once clients and developers agree on functional requirements of the system the prototype is discarded and system is re-developed from scratch using new system requirements. In Evolutionary Prototyping the prototype is not discarded, yet it is modified to save time and meet with tight deadlines [6]. For this reason I chose to employ Evolutionary Prototyping technique to systematically refine my prototype with time. 4

11 1.7.3 Spiral Model (proposed methodology) The Spiral Model combines the features of waterfall model and prototyping technique with an exception of risk analysis before each stage of the cycle [7]. Let s understand it with the help of Figure 1.2: Figure 1.2 As we can see in Figure 1.2, the model is divided into four quarters of time namely Planning, Review, Risk Analysis/Prototyping and Engineering. Each cycle of a spiral model refers to the waterfall model of a single prototype and as we go from inner to outer loops of the model the prototype gets specialized to the working system [7]. As my project required me to build a working prototype for Bradford Home-Hunter therefore Spiral Model was the most suitable choice [8] to carry out evolutionary prototyping technique with two iterations. 5

12 1.8 Project Schedule Figure 1.3 shows the Gantt chart for my project schedule: Figure 1.3 As we can see from Figure 1.3, that the initial parts of the project (stage 1, stage 2) were allocated a longer span of time than the later stages. The reason was as the existing system for the Bradford Home-Hunter case study had to be reverse engineered, analyzed and studied. Stage 3 did get delayed for a week because of extensive system testing as there were multiple solutions to the same problem. Stage 5, 6 and 7 were only delayed by a week which left me with two weeks to finish stage 8. Only two iterations within spiral model were executed because the prototype was built as a proof of concept and was not to be delivered to an active client. Therefore the most of time was spent in research and testing the system for alternative solutions. The next chapter presents the relevant literature surveyed during the course of this Project. Some issues related to multiplatform web applications are raised and then critically analyzed in context with existing solutions. Later, the text explains what Microsoft.Net has to offer when it comes to solutions accessible over multiple platforms and devices. 6

13 Chapter 2 Literature Review 7

14 2.1. Platforms, Capabilities, Issues Along the years, a lot of devices have been invented to suite our rapidly changing needs. For example, pagers were invented to facilitate rapid delivery of personalized messages, mobile phones to receive calls on a moving destination, laptops for mobility of high performance personal computers and desktop PCs to provide multimedia services. Although their services are similar, yet their hardware and software architectures are quite different. Let s take an introductory look at these extraordinary devices Platforms Every device requires a particular platform, an architecture which makes it work in optimal condition. A desktop pc can do multi-tasking only if the software architecture supports it, a mobile phone can receive calls anywhere only because of the wireless career which surrounds it and a GPS receiver can predict point of origin only when satellites triangulate its position. The choice is ours, there might be a single device which can fulfill our every need but the price tag associated with it might not be within the reach of every consumer. Therefore, there are numerous devices, platforms and architectures and we will have to deal with it. There are many qualities of a device which make it unique from others. The specifications differ in network speed (bandwidth), screen sizes, support for graphics, device input capabilities, memory and processing power. There is no universal classification of these devices still they can be divided into two major categories [9,10,11]. Homogeneous Classification which is based on a single property of a device such has screen size, network capacity and so on. Hybrid Classification which is based on multiple properties. Let s take a more detailed look at these classes. 8

15 Homogeneous or Broad Classification The majority of the devices in the world today are classified according to a specific capability of a device for example, the network type supported by the device. Based on this property the major classifications are: Wired or Static Devices, which support network connected through physical cables such as desktop pc, bar code readers and digital (cable) television. Mobile Devices, also called wireless devices, are the ones which can change their position and still are approachable by the network service provider. Some examples of these devices are mobile phones, PDA s, pagers, GPS receivers and Laptops (remember Laptops and desktop PC s can both support mobility and static behavior i.e. a Laptop can be connected to a wired or wireless network) Hybrid Classification The hybrid approach is based on multiple properties of the mobile devices. According to hybrid approach network devices can be classified into three major classes: High performance devices, such as desktop pc and laptops with large screen sizes, processing power and high bandwidth network connectivity. Medium performance devices, such as PDA s, mobile phones supporting medium screen sizes, high resolution, and high bandwidth enabled networks such as GSM and 3G (3 rd Generation). Low performance devices, such as pagers, GPS receivers and other low performance mobile phones. Figure 2.1 shows sample devices belonging to each category. Low Performance Medium Performance High Performance Figure 2.1 9

16 2.1.2 Capabilities Let us now discuss the capabilities of various network devices capable of executing web applications. Figure 2.2 lists a set of specifications for various devices belonging to major classes described above. Homogeneous Hybrid Network Screen Processing Main Memory Browser Classification Classification Connectivity Size Power Capabilities Static Devices High Performance Medium Performance 56 Kbps to 3 MBps 19.6 Kbps to 2 Mbps (3G) 14 inch to 30 inch 5.7 x 5.7 to 6 x 8 cm 500 MHz to 3.2 GHz 16 MB to 2 GB 16 MHz to 206 MHz 8MB to 32MB Video Streaming, Chatting, Multiple markup and transport language support. Music Streaming, Limited markup language and protocol support. Mobile Devices Low Performance 9.6 Kbps to 14.4 Kbps 3 x 2.5 cm Minimal Minimal or Not-Supported Not-Supported Figure 2.2 Figure 2.2 illustrates the specifications of devices according to their classes. Column 1 shows that a large number of static devices fall into high performance devices because of high network performance, screen size and processing power. Similarly only few mobile devices are high performance devices. As we move down to second and third rows in column 2 we compromise on performance and increase the mobility. We can see that a large number of mobile devices are low performance machines which support only necessary call services and few data services such as SMS (short messaging service). 10

17 Issues The whole purpose of World Wide Web (www) is to increase accessibility of web applications to multiple users across the globe. With the passage of time, every vendor has come up with their own set of customized devices to suite a particular group of consumers. This customization makes a huge burden on the shoulders of a web developer who wants to implement an application and make it accessible to a large number of users [12, 13]. These challenges raise some questions and concerns in a web developer s mind, these concerns are: Will the client browser executing my web application? For example, if the web application is written using HTML (hyper text markup language), it is inaccessible to a mobile phone which supports only WML (wireless markup language). Will my information be processed equally to all platforms supporting my application? For example, a page written in HTML might not be processed equally in both Netscape Navigator and Internet Explorer [14]. Consider the following statement: <tag-x><tag-y><tag-z> some text </tag-y></tag-x></tag-z> Internet Explorer will make sense of the tags even when ending tags are not in the same order as starting tags. While Netscape Navigator will ignore tags as they are not in the same order, it will only understand the ending tags if they are in reverse order as the starting tags as in: <tag-x><tag-y><tag-z> some text </tag-z></tag-y></tag-x> Will the target device support the content of my website? For example, will the target device support video streaming, or *.jpg image format? Will it support large font size or colors? 11

18 What limits are imposed on my application by the targeted platform? Every platform has its special needs and constraints which cannot be violated. For example, some mobile phones cannot support web page with size larger than 1.5 Kb (kilobyte). Similarly, few devices have no internal memory hence no support for cookie oriented session management [15, 16]. Will my web application be secure on the targeted platform? Security is one of the major issues for web applications. User authentication, client authorization and asset protection is the first requirement of B2C (business to consumers) applications. Therefore it is absolutely necessary for a web developer to make sure the target device will support the security she wants to implement for her application. For example, does the device support cookie or cookie-less session management? What Input capabilities will be available to the user of the application? When it comes to scalability of an application to multiple devices, one of the major issues is the ability of a client to enter their information using the device s input capabilities. For example, a mobile phone provides only a keypad to enter both numbers and digits whereas a PDA provides an On-Screen keyboard. The amount of time it takes for a mobile user to enter information from his keypad might be twice as it takes for a person using laptop or desktop pc. There might not be some special characters available or foreign language support to a mobile phone user as apposed to a desktop user. Are there any special capabilities of a device I can take advantage of? Sometimes there are some special capabilities in a device which a developer might want to take advantage of; for example, a mobile phone can make a phone call directly to a remote destination. Similarly the ability of a desktop pc to support video streaming through high bandwidth internet connection is not available to a low performance mobile phone user. All these concerns impose constraints on application development, and in this fast paced world only few have the technical capabilities and time to cope with these challenges. Let us now see 12

19 some of the available solutions to these problems. These challenges in general are referred to as Accessibility Issues [17, 18, 19] Write Once Use Anywhere The ideal solution to the accessibility problem would be to achieve device independency ( Access to a unified web from any device in any context by anyone [20]) i.e. our code can run on any device supporting any network. There are numerous ways to achieve this deviceindependency. A few of them are: Using Translators: A translator can be used to convert both code and data to the specific format understandable by the device. Gateways are used for translation from one markup language to another such as WAP gateway which is used to translate WAP request from the mobile device into HTTP request and HTTP response from internet to WAP response for the mobile device. Using Device Specific Content: One technique is mostly used for multiplatform web application development is to use device specific versions of the same content. For example, a same website is written in HTML and also in WML to comfort the needs of desktop users and mobile users. XML technologies such as XSL: FO, XSLT, SVG, and others are used to implement device specific filters. Let us now take a detailed look at various existing solutions which provide device independency Analysis of Existing Solutions In last few years, various solutions have been proposed to solve accessibility problems for multiplatform web applications. More or less all these solutions belong to on of the categories of solutions described in section 2.2. Let us take a detailed look at some of the most adopted solutions: 13

20 The most obvious way to enable a new device support to your application is to translate your existing code into the language understandable by the client device. The developer has several choices here which can be understood with the help of an example. Consider an example where our client device is a mobile phone only capable of understanding WML web content. In this case we have two choices here: First, we can re-factor our entire website into WML web content so it can easily run on the client device. Drawbacks: The drawback of the first approach is the fear of every developer i.e. to write and maintain several versions of the same application. This causes a huge burden on the shoulders of the developer to make sure that business rules are being transformed to the new device and also on the fact that she might have to learn a new set of languages and tools to make her application extensible to the new device. Second, our application server or WAP gateway can translate our HTML web content in WML content at runtime. Drawbacks: This approach is dangerous because it requires most of the content to be discarded which is not render-able in WML and also resulting in unstable behavior of application and its in-consistent presentation style. Third, to write our application in a language that runs on a virtual layer supported by various client devices. An example of such virtual layer is Java Virtual Machine (JVM) which is largely supported by the major device manufacturer in the world. Java 2 Micro Edition (J2ME) is the compact version of Java programming language, consisting of a limited set of APIs (application programming interfaces) [21, 22]. The applications (web/desktop) are written as a set of java classes/applets and downloaded to 14

21 the client machine. They are then executed on Java Virtual Machine (JVM) which is already installed on the device. Drawbacks: Although J2ME ensures platform independency by customizing each device with its own JVM but the fact remains that JVM must be pre-installed on the client device [23, 24]. If it is not then the client device will not be able to render java based solutions such as MIDlet (similar to java applet but used for mobile devices). The following FAQ script perfectly defines why J2ME based solution is not a suitable choice for more accessible web applications: Q: Will a Java Virtual Machine (JVM) come pre-installed on all Palm OS devices? Answer: A Java virtual machine is not a required component of the Palm OS and therefore is not a component PalmSource's licensees are required to support. Additionally, the Palm OS is deployed on a wide variety of devices with different capabilities and focus, not all of which are suitable for a JVM. It is left up to the licensee of the Palm OS to determine whether a JVM is needed for their device given cost constraints, memory limitations, and customer focus. As such, PalmSource cannot guarantee that a JVM will be preinstalled on all Palm OS devices. [23] The script clearly mentions why device vendors cannot guarantee the installation of Java Virtual Machine (JVM) on a device. This condition puts a huge constraint for the developers to launch their applications using J2ME. What if the client device does not have java virtual machine installed on it? What if the feasibility for the application is to use a different vendor s solution rather then Java (Sun Microsystems) based solution? Another issue is the type of content the system has to offer, for example the JVM would only be able to render the content written in java programming language. This means that existing solutions will have to be re-developed in java programming language to support accessibility. As the existing solution for Bradford Home-Hunter was developed in Asp.Net therefore the idea was to extend the existing solution for accessibility rather than re-developing it from scratch. The re-development could have been done if sufficient 15

22 reasons support this change. But, unfortunately J2ME based solutions are less accessible because of the reason described above. Although these concerns are there but with the advent of new devices capable of having large memory and processor speed, J2ME based solutions are widely accepted; but the n again our solution will have no backward integration for devices which do not support J2ME. This chapter highlighted the importance of mobile network devices and on the fact that applications are now accessible to multiple platforms all over the world. Therefore, the web developers of today have to be more careful and dynamic when designing their web applications. In Chapter 3, we will discuss what Microsoft has to offer when it comes to accessible web applications. We will discuss the architecture of Asp.Net in general and Asp.Net mobile controls in particular. 16

23 Chapter 3 Microsoft Asp.Net Mobile Controls 17

24 3.1. Microsoft.Net As the emphasis of this report is on Microsoft based technologies for designing multiplatform web applications therefore a separate section had to be dedicated to Microsoft based solutions. Microsoft has two different platforms to support device independent applications [25, 26], these are: Microsoft Smart Device Extension (MSDE) Microsoft Asp.Net Mobile Controls Let s take a detailed look at these software platforms Microsoft Smart Device Extension (MSDE) Microsoft SDE is a reply to J2ME i.e. it is a set of essential APIs for application development for various client devices [27]. The content developed by MSDE is executed by Common Language Runtime (CLR) to satisfy client s request. CLR is a Virtual Machine (VM) or Virtual Layer which is pre-installed on the client device. The application code is either pre-installed or downloaded to the machine. The main difference between MSDE and J2ME is that MSDE is for application development rather than web application (or website) development. As MSDE is similar to J2ME and both cannot be used for web application development because of very limited support therefore the most suitable solution for web applications is something which can execute on a pre-installed web browser rather than a virtual machine like JVM or CLR. Now we have finally reached to a point where we can discuss the essence of this dissertation i.e. the technology which makes the dream of Write Once, Use Anywhere a reality Microsoft Asp.Net Mobile Controls Microsoft Asp.Net mobile controls enable the developers to extend their application to multiple devices and platforms with less effort. MMIT consists of a set of APIs which contain essential mobile controls for device independent web application development. A mobile control is like any other web control but its quality is that it is rendered differently on different devices by itself. Some examples of mobile controls are a text box control, a button control, a hyperlink 18

25 control or a validation mobile control. As mobile controls are additional APIs to Asp.Net therefore to understand mobile controls first we have to understand the architecture of Asp.Net itself Asp.Net Architecture Discussing the Layered architecture of ASP.Net is not the scope of this report instead how Asp.Net manages to deliver content to multiple devices needs a special attention therefore we will discuss how Asp.Net presents information to multiple devices at the same time. Asp.Net data presentation (user interface) architecture is based on very well known Model- View-Controller (MVC) design pattern. The Model-View-Controller (MVC) design pattern consists of three essential elements [28,29]: Model, the business logic required to run the application. View, the customized user interface for each client. Controller, the class which connects model to the view and handles all input/output delegation between them. Asp.Net provides Code-Behind model to implement MVC into a web application. The mapping between MVC and Code-Behind model is as follows: A web developer implements a View (web page) in asp.net. This page handles the presentation logic of the website i.e. it contains tables, panels and other controls. This page acts as a View in the MVC architecture. The developer then writes the Code Class working behind the presentation layer. This class is responsible for event handling, implementing security and other important features for the View (web page). Multiple Views can have a single class working behind them. This Code Class acts as a Controller in the MVC architecture. The class which implements the business logic for the application acts as a Model in the MVC architecture. Asp.Net presentation architecture can be understood with the help of Figure

26 Default Mobile Phone PDA Desktop PC View View1 View2 View3 Code-Behind Class (Controller) Business Logic Class (Model) Figure 3.1 As we can see from Figure 3.1, that there are multiple views for multiple devices which are supported by a single Code-Behind (Controller) Class. This approach helps a programmer to separate the business, control and presentation logic from each other. The most important point which is to be noted in Figure 3.1 is that Microsoft Asp.Net offers the concept of Default or Generic View which can be seen in the figure on top left corner. This Default View is contender for Automated Rendering by the Asp.Net compiler. Automated Rendering is the procedure through which the Asp.Net compiler translates source mobile control into a control which can be displayed on the client device. This process is similar to translation but the only difference is the way translation can be done is in the hands of the developer herself rather than the application server or the gateway. How this is achieved shall be discussed shortly. The task is to experimentally prove that this Default or Generic View is not only accessible to multiple platforms, but also can be specialized for a particular device as well. Let us now learn more about the mobile controls which are used to generate a default or specialized view. 20

27 3.3. Asp.Net Mobile Controls Asp.Net offers a basic set of mobile controls which are render-able on major web browsers. These web browsers are supported by over 260 different devices. Asp.Net offers extensibility for new browsers and devices, and also provides mechanisms to write new mobile controls. In this chapter we ll only outline the basic set of mobile controls offered by Asp.net. In Chapter 5 we will discuss the implementation of these controls in detail. Here is a list of various mobile controls offered by Asp.Net [30, 31, 32, 33]: Control Command Form Description A control used to invoke events. Similar to submit button on html forms. Has two versions, can be displayed as button or a link. The link support is for the devices which cannot display buttons. A container control for other controls. Similar to a web form or a web page. Mobile form control can be composed of many panels containing different controls. Panel Capable of containing other controls. Panel controls can be contained within a form or other panel controls. Label, TextBox, TextView Used to display textual information. Image Used to display images of various formats e.g. bmp, jpg, wbmp etc. Validation Controls Validation controls for input validation. For example: ValidationSummary, RangeValidator, RegularExpressionValidator, RequireFieldValidator, CustomValidator, CompareValidator. List, SelectionList These controls are used to display list of items Figure

28 These controls are successfully mapped to different controls on the target device. However if used properly they are extensible to new devices and platforms as well which are not supported by Asp.Net at the moment. Chapter 5 will discuss the use of these controls and will show how we can fine tune these controls to bring the best out of them.. 22

29 Chapter 4 Bradford Home-Hunter Selected Case Study 23

30 4.1. Introduction Social housing refers to cheap housing provided by local authorities or by non-profit housing associations, for individuals or families who cannot afford to rent houses in the private sector, either due to a low income or because of a large family size. Housing is also provided for special individual needs which cannot be satisfied in the private sector. Social housing is also referred to as council housing [34]. The Bradford Home Hunter works in partnership with Bradford Community Housing Trust (BCHT), housing associations and private landlords aimed to provide local residents with information of rented accommodation. It offers the following free services to local clients: Property search Property bidding Member home swap Disability/Health related facilities Garages Let us now take a look at the existing solution for Bradford Home-Hunter Existing Solutions The existing web application for Bradford Home-Hunter is an Asp.Net solution having the following functionalities. There are two important parts of the application [35]: Internal website and External website The internal website is for the employees of Bradford Home-Hunter. This part includes [35]: Managing customer accounts Searching Properties based on client s requirements Bidding on behalf of client Informing clients if they win or loose their bid. 24

31 The external website is visible to general public where they can manage their own account information, search properties or bid on the properties of their choice. As for my scenario internal website was only accessible by desktop users (i.e. employees using Desktop PCs), therefore I did not had to re-develop the internal site of the application. On the other hand as I had to make sure the accessibility of external website to multiple client devices therefore I chose to re-factor the external website for Bradford Home-Hunter which is accessible to general public. It is also important to note here that as the existing solution was based on.net framework therefore there was an obvious temptation for me to choose.net as a first candidate for my solution. Although this was not the only reason for choosing.net for my solution but certainly it was one of the major reasons I chose to develop my solution using.net framework. Figure 4.1 shows the system architecture for the existing application for Bradford Home-Hunter. View1 Member Manager Member View2 Property Manager Property Database View3 Bidding Manager Bidding Presentation Tier Business Tier Data Tier Figure 4.1 Figure 4.1 shows that the system is divided into a 3-tier architecture, in which we have the presentation tier, the business tier and the data tier communicating with the database for the application. The Presentation Tier manages the User Interface in the form of Model-View- 25

32 Controller (MVC) Architecture. The Business Tier holds the Business Model Classes such as Member Manager to manage user accounts, Property Manager to manage property information and Bidding Manager to manage bidding rules for property bidding. The Data Tier delegates the request and response between business classes and the company database. The existing system does satisfy most of the business rules specified by Bradford Home- Hunter yet: Its accessibility is only limited to a particular group of users i.e. device users using average or high bandwidth supported web browsers such has Internet Explorer or Netscape Navigator. It only supports HTML enabled browsers. As Asp.Net content is translated to HTML response by the web server. It supports only those devices capable of rendering HTML content only such as PDAs and Smart Phones but there is no guarantee of how the content will be rendered to the target browser. It has no facility to take advantage of special capabilities of a device, for example, calling or text (SMS Short Messaging Service [36]) facility of a mobile phone Revised System Requirements Bradford Home-Hunter wants to revise their existing system. They want their website to accessible by large number of clients. For this reason they have the following set of revised system requirements: 1. The web application should be accessible to multiple platforms so as to extended existing application to new users. The most important functional requirement for the new solution is that it should be accessible and usable on many devices rather than only desktop PCs or laptops. These new devices should range from PDAs to mobile phones, Digital Televisions to any new device released in future. 26

33 2. The extension of existing application should not be at the cost of loosing any presentation experience or business logic from existing solution. This functional requirement means that the new web application should have an identical user interface as the existing application for the devices which are already supported i.e. Desktop PCs. The user interface for other devices however might differ but the basic look and feel of the application should be the same. The functional requirement also specifies that the business tier of the application should not be altered to support this change. 3. The application should automatically reconfigure itself according to the capabilities of the client device. This functional requirement demands that there should be Only One version of the application and that version should automatically re-configure itself to suit the needs of the client device. 4. The researcher should identify and specify some sort of rules or best practices to accomplish multiplatform web application development. Although this functional requirement is a secondary requirement yet it is important for the extensibility of the application over new platforms and devices. These set of rules will be employed for future releases of the application and for maintenance purposes. The best practices will also be helpful for any new developer who wants to implement their web applications for new platforms The Challenge Writing a website once and running it anywhere is a challenge itself. However, the challenge further extends while implementing additional features such as handling multimedia content, applying security and taking advantage of device specific features. With the introduction of functional requirement no. 2 (i.e. to make sure that the new website should look identical to the existing website) the challenge gets more interesting. 27

34 Chapter 5 System Implementation and Issues Resolution 28

35 5.1. Introduction This chapter presents the technical capabilities suggested by Microsoft Asp.Net to deal with issues related to multiplatform web applications. The issues are numerous and presenting their solution in this report is a limitation. However, most of the major issues are resolved for Bradford Home-Hunter prototype and their solution is presented here with reference to the software code used for the prototype. As discussed earlier, Microsoft presents Asp.Net Mobile Controls which are automatically translated to the target markup (Html Control, Wml Control) language by the Asp.Net compiler [30, 33]. The essential classes for these controls are in System.Web.UI.MobileControls API. These mobile controls are placed in a Mobile Form during development. The Mobile Form is similar to a Web Form for web browser or Deck Card for mobile browsers. During compilation it gives a hint to the Asp.Net compiler that this page is not an ordinary webpage rather it s a special mobile webpage so the compiler can handle it differently. The complete life cycle of a mobile form includes Initialization, Event Handling, Device Detection, Rendering and Cleanup. After the developer creates (Initialization) the form with her choice of mobile controls and adds control (event handling) logic to the page, it is the device detection phase where the compiler identifies the client device (e.g. mobile phone, PDA etc) and then follows the rendering procedure. In the rendering procedure the mobile controls are rendered according to the markup supported by the client device. This mechanism is termed as the Adaptive Rendering [32,33,37]. Here is a simple example which illustrates the concept of adaptive rendering. Consider a mobile label control such as: <mobile:label runat= server > This is a Mobile Control <mobile:label> If this page is requested by a Pocket PC device running Internet Explorer 5.5 web browser the control will be rendered in Html as: <span> This is a Mobile Control </span> 29

36 The same page will be rendered in a WML enabled browser running on a mobile phone as: <p> This is a Mobile Control </p> This conversion from markup to markup is not the headache of the developer anymore she just writes her website using mobile forms containing mobile controls and her website is rendered to many devices and platforms automatically. This means she does not need to learn new languages such as CHTML, HTML or WML to support this change. This takes a huge burden off the shoulders of a web developer. Let us now jump straight ahead into the actual implementation of the prototype and the way it uses.net mobile controls to resolve challenges associated with multiplatform web applications User Interface Issues User interface constitutes the input and output functionality provided to the user of the system [38, 39]. When we talk about multiple devices and platforms the first think strikes our mind is that the devices have variable range of screen sizes and input capabilities. Therefore let us divide this section into more manageable units namely: Device Input Issues and Device Output Issues Device Input Issues Majority of the wireless devices are compact and do not have a keyboard available to the user. Instead a keypad with alpha-numeric keys enable user to enter input. Some input controls work fine for a web browser but cause problems when used on a mobile browser. For example when we use a Selection List to enter user s date of birth it renders on a web browser as a Drop Down List but on a mobile browser it displays all the elements as a normal list. This problem can be better understood with the help of Figure 5.1: 30

37 1 Without Mouse Click 2 3 After Mouse Click Web Browser for Desktop PC Figure 5.1 Mobile Phone Browser The problem presented in Figure 5.1 is not a rendering problem by Asp.Net but the reason is the limitation of the mobile device on which the control is to be displayed. This problem would have been the same even for a WML based solution. The good thing is Asp.Net still displays the contents on the mobile device by using proper translation. This example also confirms the translation is done appropriately based on the features supported by the client device i.e. web browser supports drop down list but mobile browser only supports simple list control. The application s user interface should also not stress on the use of input characters which are not supported by majority of devices such as zone specific keys like dollar ($) or pound ( ). 31

38 The user interface can however take advantage of special keys available to a device to optimize performance of a web application. For example use of Soft keys in a mobile phone for page navigation. Figure 5.2 illustrates the example. Soft Keys Figure 5.2 Whether a device supports a particular functionality or not can easily be found from the User Agent string which is passed from a device when it requests a web page. In the code segment we can test a device for a particular feature and then can modify our web page s behavior accordingly. For example in Figure 5.3 we can test whether a device supports Soft Keys or not and then we can enable or disable particular features on our web application. if ( Browser.NumberOfSoftKeys > 0 ) { // means browser supports soft keys // rest of the code here... } Device Output Issues Figure 5.3 The device output issues are of greater importance than device input issues. The reason is because there is more information to be displayed than the information actually collected from the user of the application. Therefore, I concentrated on device output or presentation issues in much more detail. 32

39 Here are some of the presentation issues and their solution: Handling Different Screen Sizes Handling Multimedia & Graphics Handling Other Issues (Colors, Fonts, Special Controls) Handling Different Screen Sizes The most obvious reason which comes to a developers mind is that how she will manage different screen sizes for different devices. If user interface is not planned properly it can result in un-satisfaction on behalf of user which can result in low usability of our web application. To solve this problem I utilized the idea of using Panels to specify screen layout. Panel is a mobile control which can be embedded into a form control or other panel controls. Ultimately other mobile controls are placed on panel control. But First, developer should separate the user interface into various sections by categorizing content according to their importance. Figure 5.5 illustrates the idea: Panel 1 Panel 2 Panel 3 Figure 5.5: Division of interface into Panels As we can see in Figure 5.5 the screen is divided into 3 panels with each panel containing a particular set of information; such as Panel1 contains the Banner for Bradford Home-Hunter, Panel 2 contains the Menu for the web application and Panel 3 contains textual information and 33

40 other controls. The developer then numbers these panels according to their importance with number 1 with the highest importance, such as: 1. Panel 2 (Menu Bar) as menu is of most importance for a homepage of a website. 2. Panel 3 (Main Content) 3. Panel 1 (Banner for Bradford Home-Hunter) Now the task gets simpler, whenever a request for the page is made from a particular device the code checks which device is trying to access the page. If the client device is a desktop PC with a large screen size all of the panels can be displayed without any problem. However, if the client device is a mobile phone with only 2.5 inch screen we should concentrate on more important content such as Panel 2 (menu bar - in our case as it is a homepage for the website). Figure 5.6 shows the same homepage accessed by three different platforms i.e. a Desktop PC, a PDA and a Mobile Phone. Web Browser PDA Mobile Phone Figure 5.6 As we can see in the figure the web browser displays all the panels, PDA displays only Menu bar and Main Content whereas the mobile phone displays only the menu bar in the form of links. This presentation of links instead of images is another property supported by Asp.Net mobile Image control in which we can specify an Alternate Label for the image in case it is not presentable to a client device. 34

41 The code segment which achieves the desired result as illustrated in Figure 5.7 is: If (Request.Browser.Browser == Pocket IE ) { Panel1.Dispose(); // if it s a PDA only dispose panel 1 i.e. the banner. } else if (Request.Browser.PreferredRenderingType == "wml11") { Panel1.Dispose(); // if it s a mobile device supporting WML, dispose panel 1 and 3 Panel3.Dispose(); } Figure 5.7 The code segment in Figure 5.7 first evaluates the User Agent string passed by the client device for the Browser s name i.e. if the target device is a mobile phone rendering WML content then we don t need Panel1 (Banner) and Panel3 (Main Content) Handling Multimedia & Graphics Majority of today s websites contain an attractive blend of text, images, sound clips, movies and 3D graphics. With the introduction of high bandwidth 3G networks the day is no far when all these media shall be within everybody s reach. But until then the existing content has to be managed according to the network capacity supported by a device. Therefore we have different image formats (such as bmp, wbmp, jpg etc) and media limitations. One way to overcome such issues is what I have already suggested earlier i.e. the use of panels to divide content into manageable units. Assume we have a multimedia website capable of audio and video streaming. As it is not possible to make this content available to a wireless device user therefore the audio and video objects can be made unavailable for the wireless device user by simply disposing the associated panels. 35

42 Some media objects such as images which have smaller size and are accessible to majority of wireless devices should be available to the users. But the issue is which device supports which image format? There are two ways to resolve this issue. 1. The First way is to test the device capability within our code and then render the image format supported by the device. The code segment in Figure 5.8 illustrates the details: <mobile:image runat="server" AlternateText="Homepage" NavigateURL="index.aspx"> <DeviceSpecific> <Choice filter="iswml" ImageURL="/buttons/Home.wbmp " /> <Choice filter="ispocketpc" ImageURL="images/buttons/Home_small.gif" /> <Choice filter="ishtml" ImageURL="images/buttons/Home.gif" /> </DeviceSpecific> </mobile:image> Figure 5.8 Within first way there are two more ways by which device browser capabilities can be tested. One is by the use of Markup Tags similar to Html or Wml tags and another is by the use of Code Script embedded within the <script> tags within the webpage. Any of the two techniques can be used. Figure 5.8 utilizes the markup approach to specify a different flavor of.net. There are number of important things to be noted in Figure 5.8. First is the <mobile:image> tag which indicates it s a mobile image control. One level within is the <DeviceSpecific> tag which is a hint for the compiler to render this mobile control differently for different devices according to there capabilities. For example, the first <Choice> tag tests whether the device supports WML or not, if it does then the wireless bitmap image (.wbmp) should be sent to the client device which is small in size and displayable by the device. Similarly, the second <Choice> tag tests if the device is a Pocket PC, if it is true then a relatively medium size image in (.gif) format should be sent to the device and so on. 36

43 2. The Second approach is to use off the shore mobile controls which automatically render an image to the format supported by a device. One such control is the Mobile Dynamic Image control [40] with the following markup declaration: <MobileDynamicImage:DynamicImage id="mimage" runat="server" AutoConvert="True" AutoSizeImage="True" DynamicImageSource="c:\image1.bmp" /> Figure 5.9 With the AutoConvert property set to True, the control automatically converts a bitmap image to the image format supported by the client device such as into a.gif for PDA and.wbmp for mobile phones supporting wml Handling other Issues Other issues like does a device supports colors or not? What is the screen width and height of the device? Does a device supports Bold and Italic font styles? can be handled easily with the code script by checking a device browser for a particular functionality. The format is already explained earlier in Figure 5.7. The complete device capabilities list can be found here [41]. However, some of the common capabilities are [41]: Property General HTML chtml WML Browser // Name of the Browser? Yes Yes Yes Yes IsMobileDevice // Is it a mobile device? Yes Yes Yes Yes CanInitiateVoiceCall // Can we use voice call? Yes Yes Yes Yes MobileDeviceModel // What is device model? Yes Yes Yes Yes ScreenPixelsHeight, ScreenPixelsWidth Yes Yes Yes Yes SupportsItalic, SupportsBold No Yes Yes No CanSendMail // Can it send ? Yes Yes Yes Yes Figure

44 5.3. Network Capability Issues The major distinction between wired and wireless devices is the type of network they support. Wireless devices are limited by a small bandwidth network with slow data transfer rates and poor performance. Therefore special data transfer protocols are being designed to suit the needs of wireless devices. One such example is the Wireless Application Protocol (WAP) supported by the majority of the wireless devices. The packet transfer rate and the packet size used in WAP is a lot smaller as compared to the TCP/IP protocol used for wired devices over internet [42]. This limitation on data transfer makes a developer to consider the size of her webpage. If the size is too large it will not be transferable and render-able to the wireless device and hence will result in unexpected behavior of the application. To overcome this fear of a developer Asp.Net introduces the concept of Pagination, a technique which automatically distributes the content into multiple pages without breaking the logical integrity of the content. Pagination of a webpage is completely in the hands of the developer for example the developer can explicitly specify how many database records should be displayed on a single page. In case a developer does not explicitly specify, auto-pagination is employed by the Asp.Net compiler based on the maximum packet size supported by the device. Figure 5.11 on next page demonstrates an example of auto-pagination when used for Bradford Home-Hunter Prototype. 38

45 Web Browser Mobile Browser Mobile Browser Figure 5.11 Figure 5.11 shows the new user registration page for Bradford Home-Hunter. All the controls on the page are displayed on a single page for a web browser running on desktop PC. However, the same page is rendered into multiple pages for a mobile device when auto-pagination technique was employed. The interesting fact to note is that all this is done with almost no effort on behalf of the web developer. She only has to make a small change when declaring her mobile form (web page). This change is highlighted in Figure 5.12: <mobile:form runat = server Paginate = true > <mobile:label runat = server Text = An Example for Auto-Pagination for Bradford Home-Hunter /> </mobile:form> Figure 5.12 Such a small price to pay for leveraging your application content to multiple platforms is certainly appreciated by developers. 39

46 5.4. Security Issues Business security is far most the top priority of any company and to maintain user s information securely is a daunting task. To manage multiple requests securely, the technique of User Sessions is employed. User Session or simply Session is defined as a series of requests issued by the same client within a certain period of time [43]. A user session is managed by associating a Session ID for each client. The ID is supplied by the client on each request, either as a cookie or as a special fragment of the request URL. User parameters (or Session Variables) which constitute a session are stored either on the web server or on the client device in the form of a cookie. Most of the time session variables are stored as cookies on the client device to offload the burden from the web server. However, this technique is certainly not suitable for the wireless devices having limited or no memory at all. Therefore a Cookie-less Session Management technique is used to support all such devices and platforms. In Cookie-less Session Management the session (session variables) are managed on the server side. Once a session is created for a user, the session key is returned to the user along with the URL for the website with the following format; The session id is then extracted from the submitted URL to identify client s session. This technique however has some consequences on its use. A more detailed discussion of cookie and cookie-less sessions is followed in Chapter 6. Every folder within a website s hierarchy can have special configurations (security settings, device filters etc) which are indicated by the web.config file stored in the directory. If a web developer does not provide her web.config configuration file, system provided default settings are used. To enable cookie-less session management for Bradford Home-Hunter, I needed to provide my own web.config file with the following configurations: <system.web> <sessionstate mode="inproc" cookie-less="true" timeout="20"/> </system.web> Figure

47 There are two important points to note in Figure First the cookie-less parameter of the sessionstate object is set to true which enables session management at the server side. Secondly, the timeout variable is set to 20 minutes i.e. after 20 minutes the session will expire and user will have to re-login into the website to use it. Asp.Net makes it easier for the developer to enable cookie-less session support without making any change to their existing code. For example consider the following code segment from Bradford Home-Hunter website s new user registration page: if ( str1 == "Yes" && str2 == "No" ) { Session["RegisterationManager"] = manager; Response.Redirect("PersonDetail.aspx"); } Figure 5.14 The following code stores a user object into session with the name RegisterationManager with the value manager. This [key, value] pair in the session is preserved for all devices without doing any modification to the code. The only modification we need is to set the cookie-less property to true in the web.config configuration file. This example proves how easy it is to extend your existing application security to wireless devices having limited or no memory. Chapter 6 evaluates the use of cookieless security in more detail. 41

48 5.5. Extensibility Issues The whole point of device independence and accessibility is that on every new day, a new peace of hardware comes into the market with internet support on its fingertips. That device might have better and improved capabilities than its competing devices. To reach these users who own such devices asp.net provides its extensibility model. There are two types of extensibility supported by Asp.Net: Extensibility of web application to new devices and Writing new mobile controls for existing devices Let us understand them in detail under the context of Bradford Home-Hunter prototype Extensibility to New Devices As we know by now that the same mobile control is rendered differently for different devices with the help of adaptive rendering model. The process of adaptive rendering takes help of different device adapters [45,46]. A device adapter defines a specific set of characteristics for a particular requesting device. [44]. Device Adapters are defined within web.config or machine.config configuration files. Machine.config file is similar to web.config but it contains system wide configurations. If a hierarchy (folder) does not contain a web.config file, web.config file of a higher level hierarchy (folder) is applied. However in the absence of any web.config file, machine.config file provides the system wide configurations for the application. Device Adapters can be created in two ways either by simply copying pasting an existing device adapter within the machine.config file and giving it another name or by writing a device adapter from scratch. The first approach works best for similar devices sharing similar functionalities and capabilities. For example, device adapter for a new model of Pocket PC named RIM957 can be 42

49 created simply by copying the device adapter code for an existing model and making the necessary changes. The second approach is for a totally unknown device which has no existing similarity with an existing device adapter within machine.config. This is rare as Microsoft already provides support for over 260 devices and every new device does follow most of the standards as supported by other devices. This similarity to an existing device makes the job easier for the developer to extend her application to the new device. To make the job even easier for her Microsoft provides frequent device updates which contain device adapters for many new devices. Figure 5.15 shows device adapter for Pocket PC running Windows CE (compact edition). The code is a sample configuration block from machine.config file: <case match="wince"> mobiledevicemodel = "Pocket PC" platform = "WinCE" inputtype = "virtualkeyboard" defaultscreenpixelswidth = "240" defaultscreenpixelsheight = "320" defaultscreencharacterswidth = "30" defaultscreencharactersheight = "14" iscolor = "true" screenbitdepth = "16" supportsfontsize = "true" supportsfontname = "true" supportsfontcolor = "true" supportsdivalign = "true" supportsitalic = "true" </case> Figure 5.15 As we can see in Figure 5.15, a device adapter is merely a set of properties or capabilities owned by a device. 43

50 5.5.2 Writing new Controls for Existing Devices At present Asp.Net provides a limited set of input and output controls necessary for application development. However, there are some occasions when we want to optimize our website with some special controls such as a movie player control or a 3D graphics player control. Asp.Net elaborates step by step procedures for developers to write new controls for their web applications. I also wanted to take advantage of this opportunity and to test this functionality offered by Microsoft Asp.Net. I chose to write and use my own mobile control which automatically renders differently to different devices. The controls I chose to write for my application is the Menu control. Similar to a Menu Bar, the Mobile Menu control can be used within any web page. This control is an example of software and component reusability within my web applications. Here is a small code script from the mobile control declaration file Menu.ascx : <%@ Control Inherits="System.Web.UI.UserControl" Language="cs" %> <%@ Register TagPrefix="Mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %> <mobile:image runat="server" AlternateText="Homepage" NavigateURL="index.aspx"> <DeviceSpecific> <Choice filter="iswml" ImageURL="" /> <Choice filter="ishtml" ImageURL="images/buttons/Home.gif" /> </DeviceSpecific> </mobile:image> <mobile:image runat="server" AlternateText="About" NavigateURL="About.aspx"> <DeviceSpecific> <Choice filter="iswml" ImageURL="" /> <Choice filter="ishtml" ImageURL="images/buttons/About.gif" /> </DeviceSpecific> </mobile:image> Figure 5.16 The first line declares that this mobile control is a user control written in csharp language. The second line imports other mobile controls which are used to compose the Menu control. Rest of 44

51 the lines demonstrates the use of Image mobile control to constitute this Menu bar. Image control used in the code itself uses <DeviceSpecific> rendering to render differently to different devices Conclusion This section concludes the objectives of the chapter. In this chapter we first defined important issues for multiplatform applications such as Usability Issues (input, output issues), Accessibility Issues (page navigation, security) and Extensibility Issues (extending application to new devices, writing new controls). This chapter also presented configurations and code segments produced for Bradford Home-Hunter prototype so it would be easier for the reader to understand and learn by example. In next chapter we will test and evaluate the Bradford Home-Hunter prototype for usability and accessibility. In Chapter 6 we will also discuss how well we have been able to solve the issues related to multiplatform web applications and which factors are under consideration for future changes. Chapter 6 will also identify some problems or known issues related to asp.net mobile controls so developers can keep these issues in mind while developing there applications using Asp.Net. 45

52 Chapter 6 System Testing & Evaluation 46

53 6.1. Evaluating Project Requirements This chapter focuses on evaluation of the project and the Bradford Home-Hunter prototype. The prototype will be testing for some important issues such as security and extensibility. Let us start from the project s original minimum requirements and discuss how much I have been able to achieve my targets. This discussion might appear subjective to some readers but I will try to be as honest I can while referencing sections with in this report to prove my point Minimum Requirements First requirement for the project was to identify key challenges associated with multiplatform web applications. This requirement has been satisfied in Chapter 2 (literature review) of this report. Although not all the key challenges are discussed due to space limitation, the key challenges have been brought to reader s attention. The second requirement for the project was to propose an architecture using.net which aids the development of multiplatform web applications. This requirement has been satisfied in Chapter 3 (Microsoft Asp.Net Mobile Controls), Chapter 5 (System Implementation and Issue Resolution) and Appendix C (Guidelines for Multi-Platform web application development using.net) of this project report. Chapter 4 (Bradford Home-Hunter: Selected Case Study) presents a prototype for the project and hence satisfies the last requirement which was to build a prototype for Bradford Home- Hunter as a proof of concept. A solution CD has also been attached with the project report to help future developers to understand and extend the system Extensions An extension to the project was to extend the architecture to new platforms. This extension was met by adding device adapters for new devices such as Microsoft Pocket PC 2003 later on which the prototype was successfully tested as a proof of concept. More importantly the framework has been advised (Appendix C) which provides step by step instructions for content developers to add support for new platforms to their application. 47

54 Another extension is satisfied in Appendix C (Guidelines for Multi-Platform web application development using.net), but no new design pattern is suggested because of the time shortage. However, existing design patterns such as Model-View-Controller (MVC) design pattern and Asp.Net architecture have been discussed to provide some aid to the developer to design their applications which are architecturally flexible. Although the prototype could not be tested to a digital set-top box (an extension to the project) because of some configuration problems related to the digital set-top box emulator, however the associated technical challenges were identified during research. For example the Digital Set-Top box does render html and aspx pages which confirm that the prototype will be render-able to the Set-Top box [47] Evaluating User Requirements The interesting fact about this project is that the users are not only the end-users of the system (prototype) but also the developers who will use the technology to build multiplatform web applications. This increases the scope of this project when it comes to dealing with different users and their requirements. Therefore the requirements of both type of users needs to be addressed. Let individually discuss the requirements of Application Developers and End-Users (system users) in more detail Application Developers Requirements The requirements of the web developer are more or less the same as their concerns when it comes to multiplatform web application design. These concerns have already been identified in Section (Issues) of this report. For example, Figure 6.1 compares the use of existing and proposed (new) solution on a Pocket PC. 48

55 Existing Solution Figure 6.1 Proposed (New) Solution As we can clearly see that if the same existing solution is used the presentation information is lost (such as colors, image size etc) while the proposed solution sustains the presentational integrity of the system. This takes the burden off from the web developer and allows them to concentrate more on logical flow of events and business rules rather than worrying about accessibility and usability challenges. The automated rendering also makes job easier for the web developers as now they don t have to rewrite their solution multiple times End-User Requirements The requirements for the clients or the end users of the Bradford Home-Hunter prototype were satisfied in the following way. The first requirement of extending the application to multiple platforms rather than just desktop PC s has been successfully solved as now the website is accessible on 265 devices at the moment. However, it is important to note that application could not be tested on all 265 devices because not all devices have emulators available to test application. However, all these devices 49

56 support major browsers such as Opera, UP.SDK and Internet Explorer. Application was tested in all three browsers to test the behavior of the application. The second requirement of sustaining the presentation experience on all platforms have been met for middle to high performance devices but certainly the device limitations for low level devices make it harder to deliver the same experience to low performance devices. However, the business integrity is met equally on all devices i.e. all devices process the same business rules and provide same level of information security (5.4. Security Issues). The last requirement for the clients was that the researcher should identify and specify some sort of rules or best practices to accomplish multiplatform web application development. This task is completed by providing Appendix C. This guides the future developers for Bradford Home- Hunter in particular to address the multiplatform web application design issues systematically Evaluation of Technologies In this section I briefly outline the reasons why some technologies have advantage over others when it comes to multiplatform web applications. The technologies I will discuss here will be XSLT and Java. A lot about Asp.Net has already been said earlier therefore, I will only keep my discussion to other technologies and explain why they were not suitable candidates for the proposed solution. Let us evaluate XSLT first: XSLT XSLT stands for Extensible Style Sheet Language Transformations. As XML is used to separate data from logic, XSLT is the presentation logic which when combined with XML and Style sheets provide content delivery to various devices [48]. XSLT is used to convert data stored in XML documents into various markups including HTML and WML [49]. The obvious advantages are the separation of data from logic which is requirement when we talk about extensible and rapidly changing web content. However, the disadvantages are relatively more than the advantages [50, 51, 52]. 50

57 As the translations are memory intensive and are carried out without caching of results therefore the solution suffers huge performance penalties [50]. It is more difficult to implement business rules using XSLT. Policies are used to implement business rules in XSLT. There are many forms of policies such as creation policies to specify rules for object instantiation, placement policies to specify the name and destination of the instantiated object and input/output transformation policies to handle conversion of data formats from one format to another. The problems with policies to specify business rules are that they are difficult learn, debug and maintain [53]. As there are not many XSLT developers around the world as compared to.net or Java therefore not many companies appreciate the possibility to use and maintain a website developed using XSLT and XML. Another disadvantage of using XSLT is its architectural complexity for example we can render our content to multiple markup languages such as HTML and WML using XSLT but we cannot take advantage of special capabilities of a device using the same XSLT document. To accomplish this task we will have to write a new XSLT document designed for that specific device Java Java is certainly a powerful candidate when it comes to multiplatform application development. Java provides a single coherent model for both web and desktop application development. This makes it very easy to extend your application into a web application by simply transforming your user interface into applets or midlets [54]. Java provides strong data security such as public and private key cryptography, secure user-sessions and data-hashing [55]. Java provides database connections for almost all the major vendors such as Oracle and Microsoft. Java does not have any obvious disadvantage yet it s a choice whether you want to extend your application to a device running a virtual machine or to a device which supports universally accepted web application standards such as html or wml. 51

58 The existing system for Bradford Home-Hunter was a Microsoft.Net based solution. The requirement was to deliver content to as many devices as possible therefore it was a business requirement to carry forward the existing solution and explore options within Microsoft.Net to leverage existing solution to multiple devices and platforms Usability Testing Usability is how easy to learn the user interface is for a novice and casual user. Another definition is how easy to use (efficient, flexible, powerful) the user interface is for frequent and proficient users, after they have mastered the initial learning of the interface [56]. As this project includes a prototype for Bradford Home-Hunter Case Study therefore the most obvious thing to do was to test the usability of the prototype for various users using different platforms. For this reason a focus group was selected to carry out some selected tasks. This task based evaluation (Task Analysis) [59, 60], helped me to identify some important issues related to the web application design itself. Users were carefully selected from various backgrounds. The first user was a conventional desktop pc user; the other one was a PDA user and the third one was a frequent mobile phone user. All three users were invited to use the same content on all three platforms (desktop pc, PDA and mobile phone). The test was to identify as how convenient or difficult it is for them to carry out the same task on different platform so as to simulate the use of the system by both novice and frequent users. The task was to carry out the new user registration process on the website s registration page. All users accessed the registration page through all the three devices (desktop pc, pda, mobile phone) one by one. The registration page is shown in Figure

59 (1) (1) (1) (2) (2) (2) (3) Web Browser PDA Mobile Phone Figure 6.2 After all users completed their task they were welcomed to put their suggestions and feedback. Some similar issues were raised by all the three users related to the presentation of the website. They felt that the look and feel of the website was quite similar on PDA and Desktop PC, but was quite different on a mobile phone. The reason was the limitation on behalf of the device and was explained to the users but other than that users believed they carried out the task quite easily. However, two of the users (who were not frequent mobile phone users) faced problems in completing the task. The problem was that the registration page expires and asks the user to refresh the page, and when the user refreshes it the already entered information is lost. This problem was spotted and was recognized as the use of low timeout limit for the session. As due 53

60 to the low bandwidth and slow data input rate, it takes a longer time for a mobile phone user to complete a task. This problem was solved by increasing the session timeout limit from 5 minutes to 15 minutes. Other important issues raised by users included some presentation issues such as wrapping up of text on PDA emulator which gives an undesired look to the content. The problem was solved by changing the configuration of the PDA emulator and was identified as a configuration problem rather than problem with content itself. Desktop PC user in particular was unsatisfied about the limited content available on the web browser. As requirement for the website was presenting look and feel as the existing solution which is not rich in content such as audio and video objects, therefore future developers are encouraged to test their application with rich multimedia contents and then evaluate their performance using asp.net Accessibility Testing In this section the usability of the application will be tested against various test cases. These test cases are carefully chosen to address some challenges which have not already been discussed earlier and that might lead to project refinement and future extension. Three test cases are presented here which address particular accessibility issues of the web application using Microsoft.Net. Test Case 1: Testing Special Controls Test Case 2: Testing & Evaluating Application Security Test Case 3: Testing & Evaluating Asp.Net Mobile Controls Test Case 1: Testing Special Controls Some devices such as mobile phones have a built in capability to make phone calls. To take advantage of such capabilities Asp.Net provides the platform to test a device for a specific capability and then utilize that capability. In the following scenario the test was carried out for the calling facility of a mobile phone or PDA. 54

61 The PhoneCall mobile control of asp.net was tested for the OpenWave and Microsoft Mobile Explorer. Figure 6.3 illustrates the idea: Mobile Phone Figure 6.3 Similar tests were carried out for some special controls such as DynamicImage mobile control which automatically renders the right image format to the requesting device. The Menu control already discussed earlier ( Writing Controls for Existing Devices) provides another test for designing new controls Test Case 2: Testing & Evaluating Application Security As we know the proposed solution for Bradford Home-Hunter prototype implements cookie-less sessions (5.4.Security Issues). There are both advantages and disadvantages of using this approach. Let us compare and evaluate both approaches: Cookie-less Sessions Cookie-less sessions are insecure in the sense that if the page URL is compromised more than one users might be using the same session and thus can share the same information. For example, as discussed earlier in cookie-less sessions, SessionID is embedded in the page url: If this url is stolen by using a key logger running on a system or merely by copying and pasting the URL to another user, both user can resend the same SessionID to the server and hence can trick the server to share same information. The Advantage of Cookie-less sessions is obviously that their management is done on the server and session variables cannot be directly accessed by a third party. Another advantage is that we 55

62 can implement sessions even for memory-less devices which in our case is a basic system requirement Cookie Enabled Sessions Cookie Enabled Sessions have advantage in a way that they take the burden off from the web server so all the user management is done on the client side. Another advantage is the reduced network traffic between client and server which is a basic requirement for wireless devices in our case. However, the problem with cookie enabled sessions is security. Cookies can be stolen and security of the user can be easily compromised as client devices are normally less secure than the web server which has firewalls and antivirus shields installed on the system Conclusion: The conclusion is that both techniques have advantages and disadvantages. Therefore it is a business requirement as to which technique should be selected. However in our case the business requirement is that the prototype should be extensible to more devices. Therefore we used cookie-less sessions. Interestingly Asp.Net provides another aid for the developers a flexible choice which tests the device for its support for cookies and then implements cookie enabled sessions for the device which supports cookies Or cookie-less sessions if it does not support cookies. This flexibility ensures our web application will be accessible to all devices (both memory and memoryless) securely, yet keeping the burden off the web server. To implement this optimal and performance oriented solution all we need to do is to make the following configuration change for our web application. The script below is from the Web.Config configuration file: <sessionstate mode = InProc cookieless = AutoDetect timeout = 20 > As we can see the AutoDetect value enables the server to test the devices and then act accordingly. It is also important to mention that the timeout limit for a device can be set dynamically by detecting whether it is a mobile device with slow performance or desktop pc with premium capabilities. This point also addresses and satisfies the usability problem discussed 56

63 earlier in which the novice mobile phone users faced a particular problem of session timeout while completing the registration task as timeout limit was too low for a mobile device Test Case 3: Evaluating Asp.Net Mobile Controls Although Asp.Net mobile control proved Microsoft s claim most of the time but there were some certain points where they faced some problems. This test case was particularly created to identify and evaluate such issues. Here are some known problems with asp.net mobile controls which I faced during multiplatform application development SelectionList Control The SelectionList control could not be configured properly for selection of a single list item. For example, the control fails to post back the index of the selected list item to the web server. However if the same control is used as a CheckBox or MultiSelectionListBox it successfully sends the index back to the server [57] Mobile Link Control Even if we set the mobile link control s BreakAfter property set to true (which displays the next mobile control on the next line if set to true), the next control on the page is still displayed along the side on some mobile browsers whereas it should display next control on next line. However, the work around is to use <br> string literal in the markup code Validation Controls Validation controls do not work correctly when multiple mobile forms are placed in a single page (similar to multiple cards in a single deck terminology of WML [58]). The work around is to use server-side validation which has the disadvantage of data transfer overhead between client and server Calendar Control The Calendar Control requires more than necessary clicks and has no optimization for advanced devices. Therefore it is inefficient to use this control and should be avoided and replaced with another control such as drop down lists or data input controls which use input validation. 57

64 6.6. Conclusion and Further Work This chapter concludes this report. In this report we first started with a brief introduction of the wireless and wired internet. We discussed the prospects of wireless device users and their potential increase in future. We also discussed the requirements of business organizations and relevant concerns in a developer s mind while designing multiplatform web applications. We discussed the golden principle of Write Once & Use Anywhere and identified existing solutions that provide possibilities to make this dream a reality. In Chapter 3 we discussed what Microsoft.Net has to offer in this regard. What architecture Asp.Net provides for multiplatform web applications and A brief introduction to Asp.Net Mobile Controls. Chapter 4 presented an introduction to Bradford Home-Hunter prototype and its existing solution. Revised system requirements were identified, elaborated and explained. In Chapter 5 we experienced how Asp.Net mobile controls are put in practice and how they solve usability, accessibility and extensibility issues and challenges related to multiplatform web application design. A more focused approach was selected to address only the most common issues such as content presentation, data input, security and page navigation. Chapter 6 presented a small discussion as how issues have been addressed in this report and fulfills system and project requirements. It was an aid for me to evaluate my own performance and identify which elements I failed to address or could not address due to time limitations. There is no conclusion to this report as there is no conclusion to future. New devices shall keep entering the market, new standards shall be developed to address their issues and new techniques shall be identified to overcome those issues. The question is which solution is most extensible? Which solution can address more devices and platforms? And the whole purpose of this report was to identify what Microsoft.Net has to offer in this regard. Trial is must, and challenges are exciting, architectures are laid and sky is the limit. 58

65 References [1] emarketer, March 2002 URL: [15th June 2005] [2] Robert T Futrell, Donald F Shafer, Linda Isabell Shafer, Software Development Life Cycle Models, in: Quality Software Project Management, Printice Hall, pp [3] Dean Leffingwell, Don Widrig, Introduction, in: Managing Software Requirements: A Use Case Approach, Addison Wesly, pp [4] Chua Chee Kai, Leong Kah Fai, Lim Chu-Sing, (2003), Introduction, in: Rapid Prototyping: Principles and Applications, World Scientific, pp [5] Dean Leffingwell, Don Widrig, The Challenge of Requirements Elicitation, in: Managing Software Requirements: A Use Case Approach, Addison Wesly, pp [6] Julie A. Jacko, Andrew Sears, (2003), The Human-Computer Interaction Handbook, Lawrence Erlbaum Associates, pp [7] Dean Leffingwell, Don Widrig, Introduction, in: Managing Software Requirements: A Use Case Approach, Addison Wesly, pp [8] Gerard O'Regan, (2002), Introduction to Software Quality, in: A Practical Approach to Software Quality, Springer, pp [9] Nan Si Shi, (2003), Opportunities and Limitations in M-Commerce, in: Wireless Communications and Mobile Commerce, Idea Group Inc (IGI), pp [10] Steve Milroy, Ken Cox, (2002). Introduction to the Wireless Web & Microsoft Mobile Internet Toolkit, in:.net Mobile Web Developer s Guide, Syngress, pp [11] Paul May, (2001), Mobile Commerce Oppertunities, in: Mobile Commerce: Opportunities, Applications, and Technologies of Wireless Business, Cambridge University Press, pp [12] Artail, H., A Multiplatform Methodology: Developing Mobile Device Applications, Pervasive Computing, IEEE Volume 4, Issue 2, Jan-March 2005, pp [13] George Lawton., "Industry Trends", Computer, vol. 34, no. 12, December 2001, pp [14] Cross Browser Issues, Woodger Computing Inc. URL: [25th June, 2005] 59

66 [15] Hoang Lam, Thuan L. Thai, (2003), SQL-Server Session State Management, in:.net Framework Essentials, 3rd Edition, O Reilly, pp [16] Roberta Bragg, Mark Rhodes-Ousley, Keith Strassberg, Principles of Application Security, in: Network Security: The Complete Reference, McGrawHill Professional, pp [17] Jiraporn Buranatrived, Paul Vickers, A Study of Application and Device Effects Between a WAP Phone and a Palm PDA, in: Mobile Human-Computer Interaction Mobile HCI 2004: 6th International Symposium, September 13-16, 2004, pp [18] Pier Luigi Emiliani, Anyone, anywhere access to community-oriented services, National Research Council (CNR) [19] Stephanidis, C. (2001), User Interfaces for all: Concepts, methods and tools, Mahwah: LEA. [20] W3C URL: [5th July, 2005] [21] Kim Topley, (2002), Introduction, in: J2ME in Nutshell, O Reilly, pp. 3-9 [22] Vartan Piroumian, (2002), Introduction to Java 2 Micro Edition, in: Wireless J2ME Platform Programming, Prentice Hall. [23] Palm OS: URL: [4th July, 2005] [24] Programming Black Berry with J2ME URL: [6th July, 2005] [25] Dan Fox, Jon Box, (2003), The Compact Framework and SDP in Context, Building Solutions with the Microsoft.Net Compact Framework: Architecture and Best Practices, Addison Wesley, pp [26] Developing Mobile Applications URL: [8th July, 2005] [27] A Davy, B2B Mobile Business Processes: Scenarios and Technologies, Proceedings of the 14th International Workshop on Database and Expert Systems Applications, pp [28] Elisabeth Freeman, Bert Bates, Kathy Sierra, (2004), Compound Patterns, in: Head First Design Patterns, O Reilly, pp [29] Linda Rising, Donald G Firesmith, (1998), Patterns and Frameworks,,in: The Patterns Handbook: Techniques, Strategies, and Applications, Cambridge University Press, pp

67 [30] Matt Butler, Matt Gibbs, Interacting with Users, in: Asp.Net Mobile Controls, Wrox Publications, pp [31] Stephen Walther, (2003), Using Asp.Net Mobile Controls, in: Asp.Net Unleashed, Sams, pp [32] Andrew Duthie, Matthew MacDonald, (2003), Asp.Net Server Controls, in: Asp.Net in Nutshell, O Reilly, pp [33] Steve Milroy, Ken Cox, (2002). Developing Mobile Applications using Microsoft Mobile Internet Toolkit, in:.net Mobile Web Developer s Guide, Syngress, pp [34] Harriott S & Mathews L, (1998), Social Housing: An Introduction, Addison Wesley Longman. [35] Ziqi Zhang, (2004), Building a Prototype Web Application using.net, pp [36] SMS Short Messaging Service URL: [28th July, 2005] [37] Adaptive Rendering URL: [30 th July, 2005] [38] Konrad Baumann, Bruce Thomas, (2001), Back Ground, in: User Interface Design of Electronic Appliances, pp [39] Deborah J Mayhew, (1999), Introduction, in: The Usability Engineering Lifecycle: A Practitioner's Handbook for User Interface Design, MK Publications, pp [40] Mobile Dynamic Image Control URL: [30 th July, 2005] [41] Device Capabilities List URL: [1st August, 2005] [42] Borko Furht, Mohammad Ilyas, 2003, Wireless Application Protocol, in: Wireless Application Protocol (WAP) and Mobile Wireless Access, CRC, pp [43] User Session URL: [4th August, 2005] [44] Device Adapters URL: [4th August, 2005] 61

68 [45] Andrew Duthie, Matthew MacDonald, (2003), Asp.Net Server Controls, in: Asp.Net in Nutshell, O Reilly, pp [46] Steve Milroy, Ken Cox, (2002). Developing Mobile Applications using Microsoft Mobile Internet Toolkit, in:.net Mobile Web Developer s Guide, Syngress, pp [47] Dean McGlone, (2004), Developing an Interactive Digital Television portal for Social Housing. [48] Doug Tidwell, (2001), The Design of XSLT, in: XSLT, O Reilly, pp [49] Michael Fitzgerald, (2003), Building New Documents in XSLT, in: Learning XSLT, O Reilly, pp [50] XSLT Disadvantages: URL: [10 th June, 2005] [51] T Bittner, (2004), Performance Evaluation for XSLT Processing URL: [11 th June, 2005] [52] A Finney, M Hucka, B Bornstein, (2003), Parameter Sets: A Standard Technology for use with SBML, pp URL: [11th June, 2005] [53] Problems with XSLT URL: [15 th June, 2005] [54] K Read, L Titchkosky, (2003), Refactoring J2ME Midlets to Use the State Pattern URL: [20th June, 2005] [55] Marco Pistoia, Nataraj Nagaratnam, Larry Koved, (2004), Enterprise Security, pp [56] Deborah J Mayhew, (1999), Introduction, in: The Usability Engineering Lifecycle: A Practitioner's Handbook for User Interface Design, MK Publications, pp [57] Ridgeway M, (2002),.NET Wireless Programming (Full Coverage of Microsoft s Mobile Internet Toolkit). Alameda, Calafornia: SYBEX Inc. [58] WML terminologies URL: [15th August, 2005] [59] D. Diaper, Neville A. Stanton, (2003), Foundations, in: The Handbook of Task Analysis for Human-Computer Interaction, Lawrence Erlbaum Associates. 62

69 [60] B Kirwan, L K Ainsworth - Business & Economics, The Task Analysis Process, in: A Guide to Task Analysis, pp [61] List of Devices: URL: [22nd August, 2005] References (for external figures): Figure 1.1: emarketer, March 2002 URL: [15th June, 2005] Figure 1.2: Object Oriented Software Engineering: URL: [25th June, 2005] Figure 1.3: Use of Soft-Keys URL: [15th July, 2005] 63

70 Appendix A Personal Reflections When I was given the choices for the final term project, I instantly liked this project because I could feel the challenges this project could offer. The challenges were as I had not only to research but also to engineer. I have been interested in programming since beginning and this project offered me that opportunity to learn new languages, explore devices and overcome challenges. When I was assigned this project and I started researching, I developed a particular interest and found out the topic to be very interesting, practical and challenging. The more I studied the more I desired to try out every possibility offered by existing solutions to accomplish the challenges and where I could not find existing methods to be useful I tried my own ways to deliver solution. For example, I utilized the paneling approach for layout management which I found to be very useful. Although I was tempted to use the tabular approach to manage presentation items in the form of tables with rows and columns but I stressed on flexibility and did not compromised on short term achievements. I learnt and practiced various technologies and programming languages throughout the lifetime of this project. For example I learnt about Microsoft.Net architecture. I learnt Asp and Asp.Net and how one is better than the other. I designed database tables and utilized stored procedures (using SQL Server). I practiced the development of a project which goes from all stages of a software development life cycle starting from Requirements Gathering to Analysis, Architectural Design, Detail Design, System Implementation, Testing and Evaluation. It was certainly a good experience for me to put my education to practice before I enter the job market. It was also very important for me to follow a certain set of deadlines to achieve my targets. Although I slipped few deadlines, as I had to go back to my country for some inevitable reasons. But it made me more dedicated, focused and determined to achieve my goals. I also learnt how to re-engineer an existing solution to produce new solution. I had to start from Ziqi s existing work for Bradford Home-Hunter. This was very interesting for me to understand somebody 64

71 else s work and then later re-factor it using software reusability principles. Ziqi communicated very well with me and this communication taught me the lesson of dealing with other possible professionals and sharing their knowledge. I also learnt that well documented and well engineered software which are architecturally sound are very easy to extend and enhance. If I had to change something on my 2 nd try to handle this project I would have definitely changed the way I managed time. As in the beginning of the project I was doing all sorts of things without keeping any record of time and reference. As I progressed I got into trouble with my schedule and then I realized I will have to follow some strict time management procedures. Therefore, I dedicated proper time to both research and development and Thank God it worked really well for me in the end. My advice to future multiplatform web application developers would be to make sure their applications are architecturally flexible. They should also make sufficient testing to leverage their solution to multiple devices. The set of guidelines I have proposed in Appendix C might be a good help for you to start building your application with sound principles. In the end I would like to say that evaluating your own work is a simple task, I would be happier if others find my work useful and appreciate my efforts, therefore I am looking forward to the response I will get from researchers, students and professionals who will read and evaluate my work. 65

72 Appendix B Screen Shots for Bradford Home-Hunter Prototype The website navigation structure is as follows: Index About JoinTheClub PropertySearch Login(D) Disability/Health Garages ReportProblem(D) Site Map *D Disabled (Not Implemented) O L D Index/Homepage S O L U T I O N Web Browser N E W S O L U T I O N Web Browser PDA Mobile Phone 66

73 O L D About Home-Hunter S O L U T I O N Web Browser N E W S O L U T I O N Web Browser PDA Mobile Phone 67

74 Join The Club (Registration Page) O L D S O L U T I O N (1) (2) Web Browser N E W (1) (1) (1) S O L U T I O N (2) (2) (2) (3) Web Browser PDA Mobile Phone 68

75 Property Search O L D S O L U T I O N (1) (2) Web Browser N E W (1) (1) (1) S O L U T I O N (2) (2) (2) (3) Web Browser PDA Mobile Phone 69

76 Appendix C Guidelines for Multi-Platform Web Application Development using.net The topic is very vast and there are so many important things a developer has to keep in mind while developing for multi-platform web applications, yet there are some certain topics which demand particular attention. I have tried to organize these guidelines into their respective categories as: Design Considerations Usability Considerations Accessibility Consideration Extensibility Consideration Design Considerations Always use layered architecture for your web application. The most suitable architecture would be a 3-tier architecture or higher. The obvious advantages are flexibility of replacing any tier with other. For example replacing SQL server database with XML data store, business rules written in asp.net with XSLT based policies or Asp.Net based web content with device specific web pages such as HTML or WML. Use Paneling technique for content management. Advantages have already been discussed earlier in Chapter 5. If it is necessary to use HTML based Table control to manage screen output, use relative sizing instead of absolute sizing. For example use 100% for a table rather than 700 (pixels). Define variable and then use divisions (such has outer_table_height/2 to define height for inner table). This relative approach will help in flexible tables rendered according to the device they are being presented. 70

77 Use device specific controls only until absolute necessary. Try to define your own controls using existing controls. These controls will provide you the extensibility and functionality you require. For example, the menu control composed of image controls used for Bradford Home-Hunter prototype. There are three ways to implement security in your system through sessions. Cookie enabled, Cookie-less or Auto-Detect. Every scheme has obvious advantages and disadvantages as discussed earlier in this report. In some cases even auto-detection is not an option as all the business needs to be implemented using coherent security model. Usability Considerations Try to develop resizable content for your application. For example images of various sizes for all range of devices, three to be at least; small, medium and large. In some cases different versions of same information needs to be developed. For example summarized textual information for small devices as compared to large display devices should also be developed. Avoid use of special input keys or characters until absolutely necessary. If you are using any special keys make sure you are also offering any alternatives for devices which would not be able to support special input capabilities. Usability of an application increases if it is easier to learn for a novice user and effective to operate for a frequent or expert user. Therefore simplified content will help novice users to effectively use your application where as use of shortcuts and special capabilities offered by the device will help an expert and frequent user to speed up their work. Always evaluate the device for a capability which you are not sure about. For example support for large font sizes or colors. It is better to use relative sizing and coloring for your content. By relative I mean color of one control with respect to another. 71

78 Keep in mind what effect shall be on your application for hiding or displaying a particular Panel. It is a design time consideration and proper story boarding should be done in advance to avoid any complications. System Configurations In this section a list of system configurations and list of emulators is provided to aid future developers in developing multiplatform web applications. Here are the set of software I used for Bradford Home-Hunter prototype: SQL Server 2000 was used to create and maintain backend (database) for the system. Business rules were written using DLL files stored in the bin directory of the hierarchy where they were immediately accessed. Microsoft Visual Studio.NET 2003 was used to write business rules and were written in C# (c sharp) language. Business rules were accessed through classes written in asp.net. These are the control classes used in the code-behind model discussed in Chapter 3. Web pages were written in Asp.Net using both schemes i.e. by embedding script into the web page and also by keeping it separate in the control class as in the code-behind model. Web Matrix web server was used on a Pentium IV 2800 MHz machine running Windows XP operating system. Although the best approach is to use a Windows 2003 operating system running Internet Information Server (IIS v 6.0 or higher)..net framework 2.0 was used instead of.net framework 1.1. The reason was as I had to take advantage of new capabilities and an enhanced structure of mobile controls in.net framework

79 The following Emulators were used for system testing: o Open Wave Emulator from developer.openwave.com/download/ o Microsoft Mobile Explorer (MME) available at o Microsoft Pocket PC 2002/2003 Available free with Visual Studio.NET o Nokia WAP Toolkit at o Emmy emulator from NTL for digital televisions at o Internet Explorer 6.0 Pre-installed in Windows XP/2000/

80 Appendix D List of Devices supported by Asp.Net Mobile Controls The following devices and browsers have been tested with the Microsoft Asp.Net Mobile Controls by 29 th August, 2005 [61]. Source: Asp.Net development portal Manufacturer Model Browser Manufacturer Browser Model PD-600C Microsoft Pocket IE 2002 (4.1) DU 1.0 Alcatel One Touch 311 Openwave UP.Browser a DU 1.0 Alcatel One Touch 501 Openwave UP.Browser e DU 1.0 Alcatel One Touch 511 Openwave UP.Browser a DU 1.0 Audiovox Casio Maestro HandHeld Pocket PC BE-500 Microsoft Pocket IE 2002 (4.1) DU 1.0 Original Equipment Manufacturer's Version (J) (HTML) DU 1.0 Compaq Ipaq H3870 Microsoft Pocket IE 2002 (4.1) DU 1.0 Ericsson T20e/ec Ericsson T20/R2A DU 1.0 Ericsson T29s/sc Ericsson T20/R2A DU 1.0 Ericsson T39m/mc Ericsson T39/R202 DU 1.0 Ericsson T65 Ericsson T65/R101 DU 1.0 Fujitsu F211i ACCESS Compact NetFront 2.0 DU 1.0 Fujitsu F671i ACCESS Compact NetFront 2.0 DU 1.0 Handspring Treo 180 Blazer 2.0 DU 1.0 Handspring Visor Platinum Blazer 2.0 DU 1.0 HP Jornada 567 Microsoft Pocket IE 2002 (4.1) DU 1.0 Mitsubishi D211i ACCESS Compact NetFront 2.0 DU 1.0 Mitsubishi D503is ACCESS Compact NetFront 2.0 DU 1.0 Motorola i80s Openwave UP.Browser DU 1.0 Motorola i90c Openwave UP.Browser DU 1.0 Motorola Talkabout 191 Openwave UP.Browser 4.1 DU 1.0 Motorola Timeport 270c Openwave UP.Browser b DU 1.0 Motorola Timeport T260 Openwave UP.Browser DU 1.0 Motorola V200 Openwave UP.Browser 4.1 DU 1.0 Motorola V50 Openwave UP.Browser s DU 1.0 NEC FOMA N2001 ACCESS Compact NetFront 2.0 DU 1.0 NEC N211i ACCESS Compact NetFront 2.0 DU 1.0 NEC N503i ACCESS Compact NetFront 2.0 DU 1.0 NEC N503iS ACCESS Compact NetFront 2.0 DU

81 Nokia 3285 Openwave UP.Browser A.1 DU 1.0 Nokia 6310 Nokia 1.0 (4.10) DU 1.0 Nokia 8310 Nokia 1.0 (3.07) DU 1.0 Nokia 9110i Nokia 1.1 (HTML) DU 1.0 Nokia 9210 Symbian Crystal 6.0 (HTML) DU 1.0 Nokia Nokia Mobile Internet Toolkit 3.0 with 3330/3395 Skin Mobile Internet Toolkit 3.0 with Default Skin Nokia Mobile Browser 3.05 DU 1.0 Nokia Mobile Browser 3.0 DU 1.0 Openwave 5.0 emulator Openwave UP.Browser 5.0 DU 1.0 Palm m505 Blazer 2.0 DU 1.0 Palm VIIx AvantGo 4.0 DU 1.0 Palm Vx GoAmerica Go.Web 6.0 DU 1.0 Panasonic Panasonic Panasonic GD95 P503i P503is Original Equipment Manufacturer's Original Equipment Manufacturer's Original Equipment Manufacturer's Version DU 1.0 Version DU 1.0 Version DU 1.0 Panasonic P821i ACCESS Compact NetFront 2.0 DU 1.0 Samsung SGH-A300 Openwave UP.Browser k DU 1.0 Samsung SGH-A400 Openwave UP.Browser k DU 1.0 Samsung SPH-i300 Openwave UP.Browser c1 DU 1.0 Samsung SPH-N200 Openwave UP.Browser b DU 1.0 Sanyo C1001SA Openwave UP.Browser 3.2 DU 1.0 Sanyo SCP-4700 Openwave UP.Browser f DU 1.0 Sanyo SCP-6000 Openwave UP.Browser a DU 1.0 Sharp J-SH07 Original Equipment Manufacturer's Version 3.0 DU 1.0 Sharp SH821i ACCESS Compact NetFront 2.0 DU 1.0 Sharp Zaurus MI-E21 Original Equipment Manufacturer's Version 6.2 DU 1.0 Siemens M35 Openwave UP.Browser m DU 1.0 Siemens ME45 Openwave UP.Browser (GUI) DU 1.0 Siemens S40 Openwave UP.Browser DU 1.0 Sony C1002S Openwave UP.Browser 3.2 DU 1.0 Sony PEG T600C ilinx Xiino 1.0.6a4SJ DU 1.0 Sony SO210i ACCESS Compact NetFront 2.0 DU 1.0 Sony SO503iS ACCESS Compact NetFront 2.0 DU

82 Sprint LG TP5200 Openwave UP.Browser b DU 1.0 Toshiba Genio e550x Microsoft Pocket IE 2002 (4.1) ja DU 1.0 Toshiba J-T06 Original Equipment Manufacturer's Version 3.0 DU 1.0 Casio A3012CA Openwave UP.Browser 6.0 DU 2.0 Casio Cassiopeia E-2000 Microsoft Pocket Internet Explorer 2002 (4.1) DU 2.0 Compaq ipaq H3650 Jataayu Jbrowser 3.0 DU 2.0 Compaq ipaq H3870 EZOS EzWap 2.5 (beta 2) DU 2.0 DoCoMo Sigmarion II Microsoft Internet Explorer 4.0 DU 2.0 Ericsson T39 Ericsson T39/R201 DU 2.0 Ericsson T68 Ericsson T68/R101 DU 2.0 Ericsson T68i SonyEricsson T68/R201 A DU 2.0 Ericsson WAP Toolkit 3.2 Ericsson WAP IDE DU 2.0 Fujitsu F504i ACCESS Compact NetFront 2.0 DU 2.0 Handspring Treo 270 Handspring Blazer 2.1 DU 2.0 Hitachi NPD-10JWL Microsoft HP Jornada 568 Microsoft Jataayu WAP2 Toolkit with Default skin Legend TianJi X100 Microsoft Internet Explorer 5.5 for Windows CE.NET Pocket Internet Explorer 2002 (4.1) DU 2.0 DU 2.0 Jataayu J-Browser (beta) DU 2.0 Pocket Internet Explorer 2002 (4.1) DU 2.0 LG LP9000 Openwave UP.Browser c DU 2.0 Microsoft Smartphone Emulator for Windows CE Microsoft Pocket Internet Explorer 2002 (4.1) DU 2.0 Motorola Accompli 008/6288 Openwave UP.Browser i DU 2.0 Motorola Talkabout 192 Openwave UP.Browser c DU 2.0 NEC FOMA N2002 ACCESS Compact NetFront 2.0 DU 2.0 NEC N504i ACCESS Compact NetFront 2.0 DU 2.0 Nokia 6510 Nokia 1.0 (4.0) DU 2.0 Nokia Mobile Internet Toolkit 3.1 with Default skin Nokia Mobile Browser DU 2.0 OKWap i108 Openwave UP.Browser c DU 2.0 Openwave Panasonic Panasonic Universal Edition 1.1 with default skin P211i P504i Openwave UP.Browser 6.0 DU 2.0 Original Equipment Manufacturer's Original Equipment Manufacturer's Version 2.0 DU 2.0 Version 2.0 DU

83 Psion Series 7 Symbian EPOC Web 2.0 DU 2.0 RIM Blackberry 957 GoAmerica Go.Web (HTML) DU 2.0 Samsung Nexio S150 Microsoft Internet Explorer 4.0 (for WinCE 3.0) DU 2.0 Sanyo A3011SA Openwave UP.Browser 6.0 DU 2.0 Sharp Sharp J-SH08 J-SH51 Original Equipment Manufacturer s Original Equipment Manufacturer s Version 3.0 DU 2.0 Version 4.0 DU 2.0 Sharp SH251i ACCESS Compact Netfront 2.0 DU 2.0 Sharp Zaurus MI-E25DC Original Equipment Manufacturer s Version 6.2 DU 2.0 Sharp Zaurus SL 5500 Opera Ver 5.0 DU 2.0 Siemens S45 Openwave UP.Browser (GUI). DU 2.0 Sony CLIE PEG-NR70V Ilinx Xiino 2.0SJ DU 2.0 Sony CLIE PEG-T650C Ilinx Xiino 2.0SJ DU 2.0 T-Mobil Pocket PC Phone Microsoft Internet Explorer 2002 (4.1) DU 2.0 Toshiba C5001T Openwave UP.Browser 6.0 DU 2.0 Toshiba Genio e550g Microsoft Toshiba J-T51 Original Equipment Manufacturer's Internet Explorer 2002 (4.1) DU 2.0 Version 4.0 DU 2.0 Casio Casio A5302CA Openwave UP.Browser 6.0 DU 3.0 Cyberbank POZ Microsoft Pocket IE 2002 (4.1) DU 3.0 Docomo Musea Microsoft Pocket IE 2002 (4.1) DU 3.0 DOPOD 686 Microsoft Pocket IE 2002 (4.1) DU 3.0 Fujitsu F212i Access Compact NetFront 2.0 DU 3.0 Hitachi SH-P300 Openwave UP.Browser DU 3.0 JTEL Cellvic XG NATE Browser v2.2 DU 3.0 LEGEND G808 AU-Systems V4.2 DU 3.0 LG LX5350 Openwave UP.Browser 6.1.B.292 DU 3.0 Motorola E360 Openwave UP.Browser DU 3.0 Motorola V-730 AU-Systems V2.5 DU 3.0 Motorola V60G Openwave UP.Browser4.1.23c DU 3.0 Motorola V70 Openwave UP.Browser i DU 3.0 NEC N251i Access Compact NetFront 2.0 DU 3.0 NEC N504iS Access Compact NetFront 2.0 DU 3.0 Nokia 6590 Nokia 1.0 (30.34) DU

84 Nokia 7650 Nokia DU 3.0 OpenWave 6.1 Emulator OpenWave UP.Browser 6.1 DU 3.0 Orange SmartPhone 2002 Microsoft Pocket IE 2002 (4.1) DU 3.0 Palm Tungsten T Palm WebPro v 1.0 DU 3.0 Panasonic P504iS Panasonic Proprietary 2.0 DU 3.0 Philips Fisio 820 Openwave UP.Browser DU 3.0 Sanyo Sharp J-SA51 J-SH52 Original Equipment Manufacturer's Original Equipment Manufacturer's Version 4.1 DU 3.0 Version 4.1 DU 3.0 Sharp SL-B500 Access NetFront 3.0 DU 3.0 Siemens S46 Openwave UP.Browser DU 3.0 SonyEricsson SonyEricsson A1101S Openwave UP.Browser 6.0 DU 3.0 SonyEricsson SonyEricsson P800 SonyEricsson P800/R101 DU 3.0 SonyEricsson SonyEricsson T300 SonyEricsson T300/R101 DU 3.0 SonyEricsson T68i SonyEricsson T68/R301A DU 3.0 T-Mobile SideKick AvantGo 3.2 DU 3.0 Toshiba Genio e550gx Microsoft Pocket IE 2002 (4.1) DU 3.0 Toshiba J-T08 Original Equipment Manufacturer's Version 3.0 DU 3.0 BenQ S830c Openwave UP.Browser DU 4.0 Compaq Ipaq3650 Microsoft PIE 2003 (MSIE 4.01) DU 4.0 Mitsubishi D505i ACCESS Compact NetFront 2.0 DU 4.0 NEC J-N51 Original Equipment Manufacturer's Version 4.2 DU 4.0 NEC N251iS ACCESS Compact NetFront 2.0 DU 4.0 Nokia 3590 Nokia 1.0(7.03) DU 4.0 Nokia 3595 Nokia 1.0 (7.01) DU 4.0 Nokia 3650 Nokia X DU 4.0 Nokia 5100 Nokia DU 4.0 Nokia 6200 Nokia 1.0 (3.05) DU 4.0 Nokia 6800 Nokia 2.0 DU 4.0 NTT DoCoMo i-mode HTML Simulator NTT DoCoMo i-mode HTML Simulator Version 6.0 DU 4.0 NTT DoCoMo Sigmarion III Microsoft IE 5.5 (for CE.NET) DU 4.0 Openwave 6.2 Openwave 6.2 DU 4.0 Panasonic GD87 OEM Panasonic-GAD87/A39 DU 4.0 Panasonic GU87 Panasonic GAD87/A38 DU

85 Pantech&Curitel PS-E200 Infraware 1.0 DU 4.0 Samsung SCH-E150 Infraware 1.0 DU 4.0 Samsung SPH-i330 Blazer V2.1.1s2 Build 31 DU 4.0 Sharp GX10 Openwave UP.Browser v6.1 DU 4.0 Sharp Sharp J-SH53 SH251iS Original Equipment Manufacturer's Original Equipment Manufacturer Version 4.2 DU 4.0 NA DU 4.0 Sharp SL 5600 Opera 6.0 DU 4.0 Siemens S55 Openwave UP.Browser DU 4.0 Sony CLIE PEG-TG50 ACCESS NetFront 3.0 DU 4.0 Sony Ericsson Sony Ericsson T610 Sony Ericsson T610/R101 DU 4.0 SonyEricsson SO505i Original Equipment Manufacturer NA DU 4.0 SonyEricsson SonyEricsson T310 SonyEricsson T310/R201 DU 4.0 TCL L668 Openwave UP.Browser DU 4.0 Toshiba A5304T Openwave UP.Browser 6.0 DU 4.0 Toshiba Genio e550c Microsoft Pocket IE 2002 (4.1) ja DU 4.0 Alcatel One Touch 701 Openwave UP.Browser MIT 1.0 Audiovox CDM-135 Openwave UP.Browser MIT 1.0 Audiovox CDM-9000 Openwave UP.Browser MIT 1.0 Audiovox CDM-9100 Openwave UP.Browser c MIT 1.0 Benefon Q Microsoft Mobile Explorer 2.01 MIT 1.0 Casio Cassiopeia E-125 Microsoft Pocket IE 2000 (4.01) MIT 1.0 Compaq ipaq H3630 Microsoft Pocket IE 2000 (4.01) MIT 1.0 Compaq ipaq H3650 GoAmerica Go.Web MIT 1.0 Compaq ipaq H3650 Microsoft Pocket IE 2000 (4.01) MIT 1.0 Compaq ipaq H3650 Omnisky 2.0 MIT 1.0 Compaq ipaq H3670 Microsoft Pocket IE 2002 (4.1) MIT 1.0 Ericsson R280LX Openwave UP.Browser 3.03 MIT 1.0 Ericsson R320 Ericsson R320/R1A MIT 1.0 Ericsson R380 Ericsson R MIT 1.0 Ericsson R380 Emulator Ericsson R MIT 1.0 Ericsson R520 Ericsson R520/R201 MIT 1.0 Ericsson T20s Ericsson T20/R2A MIT 1.0 Fujitsu F503i ACCESS Compact NetFront 2.0 MIT 1.0 Handspring Visor Platinum Blazer 1.0 MIT 1.0 Handspring Visor Platinum Qualcomm Euora Internet Suite 2.1 MIT

86 Handspring Visor Prism Omnisky MIT 1.0 Hitachi C407H Openwave UP.Browser 3.1 MIT 1.0 HP Jornada 720 Microsoft Pocket IE 2000 (4.01) MIT 1.0 IBM WorkPad C505 ilinx Xiino 1.01J MIT 1.0 Jungle DoCoMo 502 Em. i-page master 1.0 (502i) MIT 1.0 Kyocera QCP 2035A Openwave UP.Browser MIT 1.0 Kyocera QCP 3035 Openwave UP.Browser MIT 1.0 Kyocera QCP 6035 Qualcomm Eudora 2.0 MIT 1.0 LG V111 Openwave UP.Browser 3.1 MIT 1.0 Microsoft Emulator Microsoft Mobile Explorer 2.01 MIT 1.0 Microsoft Emulator Microsoft Mobile Explorer 3.0 (HTML) MIT 1.0 Microsoft Emulator Microsoft Pocket IE 2000 (4.01) MIT 1.0 Mitsubishi D502i ACCESS Compact NetFront 2.0 MIT 1.0 Mitsubishi D503i ACCESS Compact NetFront 2.0 MIT 1.0 Mitsubishi T250 Openwave UP.Browser A.1 MIT 1.0 Motorola i1000 plus Openwave UP.Browser MIT 1.0 Motorola i2000 plus Openwave UP.Browser MIT 1.0 Motorola i50sx Openwave UP.Browser b MIT 1.0 Motorola i85s Openwave UP.Browser b MIT 1.0 Motorola StarTAC 7868W Openwave UP.Browser MIT 1.0 Motorola T2288 Openwave UP.Browser MIT 1.0 Motorola TimePort P7382i Openwave UP.Browser i MIT 1.0 Motorola TimePort P7389 Openwave UP.Browser g MIT 1.0 Motorola TimePort P8767 Openwave UP.Browser MIT 1.0 Motorola V100 Openwave UP.Browser MIT 1.0 Motorola V120c Openwave UP.Browser b MIT 1.0 Motorola V2288 Openwave UP.Browser f MIT 1.0 Motorola V60c Openwave UP.Browser b MIT 1.0 NEC N210i ACCESS Compact NetFront 2.0 MIT 1.0 NEC N502i ACCESS Compact NetFront 2.0 MIT 1.0 NetFarm JPhone Em. J-Sky Viewer 1.2 MIT 1.0 Nokia 3330 Nokia 1.0 (3.12) MIT 1.0 Nokia 6210 Nokia 1.0 (4.27) MIT 1.0 Nokia 7110 Nokia 1.0 (5.01) MIT 1.0 Nokia 9110i Nokia 1.1 MIT 1.0 Nokia 9210 Symbian Crystal 6.0 MIT 1.0 Openwave Emulator for KDDI Openwave UP.Browser MIT

87 Openwave Openwave phones UP 3.2 Emulator with Mitsubishi T250 Skin UP 4.1 Emulator with Default skin Openwave UP.Browser 3.2 MIT 1.0 Openwave UP.Browser 4.1 MIT 1.0 Palm m505 Palm MyPalm 1.1 MIT 1.0 Palm VIIx Palm MyPalm 1.0 MIT 1.0 Palm Vx AU-Systems MIT 1.0 Palm Vx GoAmerica Go.Web MIT 1.0 Palm Vx Omnisky MIT 1.0 Panasonic Panasonic P210i P502i Phone Original Equipment Manufacturer's Original Equipment Manufacturer's Version MIT 1.0 Version MIT 1.0 Personal Computer Microsoft Internet Explorer 5.5 MIT 1.0 Personal Computer Microsoft Internet Explorer 6.0 MIT 1.0 RIM Blackberry 857 GoAmerica Go.Web (HTML) MIT 1.0 RIM Blackberry 857 GoAmerica Go.Web (HTML) MIT 1.0 RIM Blackberry 950 GoAmerica Go.Web (HTML) MIT 1.0 RIM Blackberry 950 GoAmerica Go.Web (HTML) MIT 1.0 RIM Blackberry 957 GoAmerica Go.Web (HTML) MIT 1.0 RIM Blackberry 957 GoAmerica Go.Web (HTML) MIT 1.0 Samsung SCH-6100 Openwave UP.Browser 3.1 MIT 1.0 Samsung SCH-850 Openwave UP.Browser 3.1 MIT 1.0 Samsung SCH-8500 Openwave UP.Browser TC14 MIT 1.0 Samsung UpRoar M100 Openwave UP.Browser 3.1 MIT 1.0 Sanyo C401SA Openwave UP.Browser 3.2 MIT 1.0 Sanyo SCP-4500 Openwave UP.Browser MIT 1.0 Sanyo SCP-5000 Openwave UP.Browser 3.2 MIT 1.0 Sharp Sharp J-SH04 Zaurus MI-E1 Original Equipment Manufacturer's Original Equipment Manufacturer's Version 3.0 MIT 1.0 Version 6.1 MIT 1.0 Siemens C35i Openwave UP.Browser 4.1.8c MIT 1.0 Siemens S35i Openwave UP.Browser MIT 1.0 Siemens SL45 Openwave UP.Browser 4.1 MIT 1.0 Sony CLIE PEG-N700C ilinx Palmscape 4.0SJ MIT 1.0 Sony CMD-J5 Microsoft Mobile Explorer 2.0 r54ue MIT 1.0 Sony CMD-z5 Microsoft Mobile Explorer 2.0 r54ue MIT

88 Sony SO503i ACCESS Compact NetFront 2.0 MIT 1.0 Sprint Denso Touchpoint 120 Openwave UP.Browser 3.1 MIT 1.0 Sprint Denso Touchpoint 2200 Openwave UP.Browser 3.1 MIT 1.0 Sprint LG TP3000 Openwave UP.Browser 3.1 MIT 1.0 Toshiba J-T05 Original Equipment Manufacturer's Version 3.0 MIT 1.0 Device Count:

89 Appendix E Objectives and Deliverables Form AIM AND REQUIREMENTS FORM COPIED TO SUPERVISOR AND STUDENT Name of the student: Sheik MAZHAR address: scs4stm Degree programme: MIS - MSc in Information Systems Number of credits: 60 Supervisor: oaj Company: n/a The aim is: To explore the potential of.net to resolve architectural issues associated with Multiplatform Architectures by implementing a Case Study for Bradford Home Hunter. The project outline is: Background reading: How does.net help in providing solution for Multiplatform Architectures, Studying previous studies at School of Computing for Bradford Home Hunter. Methodology: System Development. Product: report + prototype Evaluation of product: Testing the prototype of various architectures such as mobile phones / PC's The minimum requirements are: 1. A summary report outlining the key challenges associated with Multiplatform Web Architectures. 2. Proposals for a Multiplatform Architecture using.net 3. Prototype for a Business Case Study. 4. (none) 5. (none) 83

90 The hardware and software resources are: 1. Microsoft Windows2003 with Internet Information Server IIS The foundation modules are: 1. COMP5010M 2. COMP5050M The project title is Implementing a Multiplatform Web Architecture using.net. (*Please note project title was changed to Designing Multiplatform Web Applications using.net ) 84

91 Appendix F Marking Scheme and Header Sheet for the marked Mid Project Report (*please note that the original marked mid project report has been misplaced Ann Roberts, Project Supervisor and Assessor informed) 85

92 School of Computing, University of Leeds MSC MID PROJECT REPORT All MSc students must submit an interim report on their project to the MSc project co-ordinator (Mrs A. Roberts) via the CSO by 9am Wednesday 28th April Note that it may require two or three iterations to agree a suitable report with your supervisor, so you should let him/her have an initial draft well in advance of the deadline. The report should be a maximum of 10 pages long and be attached to this header sheet. It should include: the overall aim of the project the objectives of the project the minimum requirements of the project and further enhancements a list of deliverables resources required project schedule and progress report proposed research methods a draft chapter on the literature review and/or an evaluation of tools/techniques the WWW document link for the project log to date The report will be commented upon both by the supervisor and the assessor in order to provide you with feedback on your approach and progress so far. The submission of this Mid Project Report is a pre-requisite for proceeding to the main phase of the project. Student: Programme of Study: Title of project: Supervisor: External Company (if appropriate): Understand the problem AGREED MARKING SCHEME Produce a solution * Evaluation Write-up Appendix A TOTAL % * This includes professionalism Signature of student: Date: 86

93 Supervisor's comments on the Interim Report 87

94 Assessor's comments on the Interim Report 88

Mobile Operating Systems. Week I

Mobile Operating Systems. Week I Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone

More information

White Paper Using PHP Site Assistant to create sites for mobile devices

White Paper Using PHP Site Assistant to create sites for mobile devices White Paper Using PHP Site Assistant to create sites for mobile devices Overview In the last few years, a major shift has occurred in the number and capabilities of mobile devices. Improvements in processor

More information

Chapter 10: Multimedia and the Web

Chapter 10: Multimedia and the Web Understanding Computers Today and Tomorrow 12 th Edition Chapter 10: Multimedia and the Web Learning Objectives Define Web-based multimedia and list some advantages and disadvantages of using multimedia.

More information

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers

More information

Design and Functional Specification

Design and Functional Specification 2010 Design and Functional Specification Corpus eready Solutions pvt. Ltd. 3/17/2010 1. Introduction 1.1 Purpose This document records functional specifications for Science Technology English Math (STEM)

More information

800-02577-TC 3/10 Rev. A

800-02577-TC 3/10 Rev. A 800-02577-TC 3/10 Rev. A Total Connect Online Help Guide TRADEMARKS Honeywell is a registered trademark of Honeywell International Inc. Windows and Windows Vista are trademarks, or registered trademarks

More information

IE Class Web Design Curriculum

IE Class Web Design Curriculum Course Outline Web Technologies 130.279 IE Class Web Design Curriculum Unit 1: Foundations s The Foundation lessons will provide students with a general understanding of computers, how the internet works,

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

WebEx. Remote Support. User s Guide

WebEx. Remote Support. User s Guide WebEx Remote Support User s Guide Version 6.5 Copyright WebEx Communications, Inc. reserves the right to make changes in the information contained in this publication without prior notice. The reader should

More information

3M Stats and Status Software for 3M Detection System Model 8900/9900. Administrator s Guide

3M Stats and Status Software for 3M Detection System Model 8900/9900. Administrator s Guide 3M Stats and Status Software for 3M Detection System Model 8900/9900 Administrator s Guide Copyright 2009, 3M. All rights reserved. 3M Stats and Status Software for 3M Detection System Model 8900/9900

More information

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development 4 Understanding Web Applications IN THIS CHAPTER 4.1 Understand Web page development 4.2 Understand Microsoft ASP.NET Web application development 4.3 Understand Web hosting 4.4 Understand Web services

More information

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify

More information

Voluntary Product Accessibility Report

Voluntary Product Accessibility Report Voluntary Product Accessibility Report Compliance and Remediation Statement for Section 508 of the US Rehabilitation Act for OpenText Content Server 10.5 October 23, 2013 TOGETHER, WE ARE THE CONTENT EXPERTS

More information

Performance analysis and comparison of virtualization protocols, RDP and PCoIP

Performance analysis and comparison of virtualization protocols, RDP and PCoIP Performance analysis and comparison of virtualization protocols, RDP and PCoIP Jiri Kouril, Petra Lambertova Department of Telecommunications Brno University of Technology Ustav telekomunikaci, Purkynova

More information

Welcome To Paragon 3.0

Welcome To Paragon 3.0 Welcome To Paragon 3.0 Paragon MLS is the next generation of web-based services designed by FNIS specifically for agents, brokers, and MLS administrators. Paragon MLS is an amazingly flexible online system

More information

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development Nokia 9210i/9290 Communicators and Personal TM Application Development 05-03-2002 Nokia 9210i/9290 Communicators and PersonalTM Application Development Table of contents 1. DIFFERENT JAVA TECHNOLOGIES...

More information

Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript.

Fig (1) (a) Server-side scripting with PHP. (b) Client-side scripting with JavaScript. Client-Side Dynamic Web Page Generation CGI, PHP, JSP, and ASP scripts solve the problem of handling forms and interactions with databases on the server. They can all accept incoming information from forms,

More information

San Joaquin County Office of Education Career & Technical Education Web Design ~ Course Outline CBEDS#: 4601

San Joaquin County Office of Education Career & Technical Education Web Design ~ Course Outline CBEDS#: 4601 Web Design Course Outline I II 1 Course Content 5 5 Student Evaluation Employment Opportunities 2 XHTML 10 10 Creating an HTML Document Formatting Text with HTML Adding Graphics with Multimedia Using forms

More information

Systems Analysis Input and Output 1. Input and Output

Systems Analysis Input and Output 1. Input and Output Systems Analysis Input and Output 1 Input and Output A course in information architecture or web design, complemented with work in Human-Computer Interaction, will help the analyst understand how to improve

More information

Guide to Wireless Communications. Digital Cellular Telephony. Learning Objectives. Digital Cellular Telephony. Chapter 8

Guide to Wireless Communications. Digital Cellular Telephony. Learning Objectives. Digital Cellular Telephony. Chapter 8 Guide to Wireless Communications Digital Cellular Telephony Chapter 2 Learning Objectives Digital Cellular Telephony 3 Describe the applications that can be used on a digital cellular telephone Explain

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

Propalms TSE Deployment Guide

Propalms TSE Deployment Guide Propalms TSE Deployment Guide Version 7.0 Propalms Ltd. Published October 2013 Overview This guide provides instructions for deploying Propalms TSE in a production environment running Windows Server 2003,

More information

Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations

Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations R.S.S.Vishnu Priya, P.Panini Sai, K.Ruth Ramya, N.Chandra Sekhar, K.Venkata Prasad, P.D.Nageswara Rao Dept. of CSE, KLCE Vaddeswaram,

More information

Test 1 Review Chapter 1 What is a computer? 1. Definition of computer 2. Data and information. Emphasize that data is processed into information. 3.

Test 1 Review Chapter 1 What is a computer? 1. Definition of computer 2. Data and information. Emphasize that data is processed into information. 3. Test 1 Review Chapter 1 What is a computer? 1. Definition of computer 2. Data and information. Emphasize that data is processed into information. 3. Instructions 4. Describe the information processing

More information

VIA CONNECT PRO Deployment Guide

VIA CONNECT PRO Deployment Guide VIA CONNECT PRO Deployment Guide www.true-collaboration.com Infinite Ways to Collaborate CONTENTS Introduction... 3 User Experience... 3 Pre-Deployment Planning... 3 Connectivity... 3 Network Addressing...

More information

Setting up for Adobe Connect meetings

Setting up for Adobe Connect meetings Setting up for Adobe Connect meetings When preparing to lead a live lecture or meeting, you probably ensure that your meeting room and materials are ready before your participants arrive. You run through

More information

Features Reference. About Unified Communication System. Before Using This Machine. Starting a Meeting. What You Can Do During the Meeting

Features Reference. About Unified Communication System. Before Using This Machine. Starting a Meeting. What You Can Do During the Meeting Features Reference About Unified Communication System Before Using This Machine Starting a Meeting What You Can Do During the Meeting Leaving a Meeting Managing Address Book Changing Network Configuration

More information

Fast track to HTML & CSS 101 (Web Design)

Fast track to HTML & CSS 101 (Web Design) Fast track to HTML & CSS 101 (Web Design) Level: Introduction Duration: 5 Days Time: 9:30 AM - 4:30 PM Cost: 997.00 Overview Fast Track your HTML and CSS Skills HTML and CSS are the very fundamentals of

More information

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA Enterprise Web 2.0 >>> FAST White Paper November 2006 Abstract Modern Rich Internet Applications for SOA have to cope with

More information

Getting Started with iphone SDK, Android and others: Mobile Application Development Create your Mobile Applications Best Practices Guide

Getting Started with iphone SDK, Android and others: Mobile Application Development Create your Mobile Applications Best Practices Guide Getting Started with iphone SDK, Android and others: Mobile Application Development Create your Mobile Applications Best Practices Guide Copyright 2008 Mobile Application Development 100 Success Secrets

More information

BUILDER 3.0 Installation Guide with Microsoft SQL Server 2005 Express Edition January 2008

BUILDER 3.0 Installation Guide with Microsoft SQL Server 2005 Express Edition January 2008 BUILDER 3.0 Installation Guide with Microsoft SQL Server 2005 Express Edition January 2008 BUILDER 3.0 1 Table of Contents Chapter 1: Installation Overview... 3 Introduction... 3 Minimum Requirements...

More information

WESTERN KENTUCKY UNIVERSITY. Web Accessibility. Objective

WESTERN KENTUCKY UNIVERSITY. Web Accessibility. Objective WESTERN KENTUCKY UNIVERSITY Web Accessibility Objective This document includes research on policies and procedures, how many employees working on ADA Compliance, audit procedures, and tracking content

More information

Web Design Specialist

Web Design Specialist UKWDA Training: CIW Web Design Series Web Design Specialist Course Description CIW Web Design Specialist is for those who want to develop the skills to specialise in website design and builds upon existing

More information

Modeling the Mobile Application Development Lifecycle

Modeling the Mobile Application Development Lifecycle , March 12-14, 2014, Hong Kong Modeling the Mobile Application Development Lifecycle Tejas Vithani, Member, IAENG and Anand Kumar Abstract Software Development Lifecycle is crucial in Desktop or web application

More information

GCE APPLIED ICT A2 COURSEWORK TIPS

GCE APPLIED ICT A2 COURSEWORK TIPS GCE APPLIED ICT A2 COURSEWORK TIPS COURSEWORK TIPS A2 GCE APPLIED ICT If you are studying for the six-unit GCE Single Award or the twelve-unit Double Award, then you may study some of the following coursework

More information

Software Engineering. What is a system?

Software Engineering. What is a system? What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,

More information

Information Technology Career Field Pathways and Course Structure

Information Technology Career Field Pathways and Course Structure Information Technology Career Field Pathways and Course Structure Courses in Information Support and Services (N0) Computer Hardware 2 145025 Computer Software 145030 Networking 2 145035 Network Operating

More information

White Paper. Java Security. What You Need to Know, and How to Protect Yourself. 800.266.7798 www.inductiveautomation.com

White Paper. Java Security. What You Need to Know, and How to Protect Yourself. 800.266.7798 www.inductiveautomation.com White Paper Java Security What You Need to Know, and How to Protect Yourself Java Security: What You Need to Know, and How to Protect Yourself Ignition HMI, SCADA and MES software by Inductive Automation

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

Chapter 6 Virtual Private Networking Using SSL Connections

Chapter 6 Virtual Private Networking Using SSL Connections Chapter 6 Virtual Private Networking Using SSL Connections The FVS336G ProSafe Dual WAN Gigabit Firewall with SSL & IPsec VPN provides a hardwarebased SSL VPN solution designed specifically to provide

More information

JISIS and Web Technologies

JISIS and Web Technologies 27 November 2012 Status: Draft Author: Jean-Claude Dauphin JISIS and Web Technologies I. Introduction This document does aspire to explain how J-ISIS is related to Web technologies and how to use J-ISIS

More information

WHITE PAPER SETTING UP AND USING ESTATE MASTER ON THE CLOUD INTRODUCTION

WHITE PAPER SETTING UP AND USING ESTATE MASTER ON THE CLOUD INTRODUCTION WHITE PAPER SETTING UP AND USING ESTATE MASTER ON THE CLOUD INTRODUCTION Cloud Computing can provide great flexibility for the Estate Master user. You can access your feasibilities, manage you projects

More information

Developing accessible portals and portlets with IBM WebSphere Portal

Developing accessible portals and portlets with IBM WebSphere Portal Developing accessible portals and portlets with IBM WebSphere Portal Level: Introductory IBM Human Ability and Accessibility Center Austin, Texas February, 2006 Copyright International Business Machines

More information

Your Assistant Collaboration Module

Your Assistant Collaboration Module MITEL Your Assistant Collaboration Module User Guide Notice This guide is released by Mitel Networks Corporation and provides information necessary to use the Mitel Your Assistant Collaboration Module.

More information

Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7.

Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7. Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7. This document contains detailed instructions on all features. Table

More information

Visualisation in the Google Cloud

Visualisation in the Google Cloud Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores

More information

Lesson 1 Quiz. 3. The Internet is which type of medium? a. Passive b. Broadcast c. One-to-one d. Electronic print

Lesson 1 Quiz. 3. The Internet is which type of medium? a. Passive b. Broadcast c. One-to-one d. Electronic print Lesson 1 Quiz 1. Which technology trend in Web development can be defined as a group of XMLbased technologies that enable computers using different operating systems and software to easily exchange information

More information

LiveTalk Call Center solution

LiveTalk Call Center solution LiveTalk Call Center solution I. Introduction LiveTalk enables real-time interaction between callers and a pool of technical and customer support or sales agents via a completely web based interface. With

More information

Contents. Launching FrontPage... 3. Working with the FrontPage Interface... 3 View Options... 4 The Folders List... 5 The Page View Frame...

Contents. Launching FrontPage... 3. Working with the FrontPage Interface... 3 View Options... 4 The Folders List... 5 The Page View Frame... Using Microsoft Office 2003 Introduction to FrontPage Handout INFORMATION TECHNOLOGY SERVICES California State University, Los Angeles Version 1.0 Fall 2005 Contents Launching FrontPage... 3 Working with

More information

PRIVATE TEXTUAL NETWORK USING GSM ARCHITECTURE

PRIVATE TEXTUAL NETWORK USING GSM ARCHITECTURE PRIVATE TEXTUAL NETWORK USING GSM ARCHITECTURE * Qurban A. Memon, **Zubair Shaikh and ***Ghulam Muhammad * Associate Professor; **Associate Professor, ***Senior Year Student Karachi Institute of Information

More information

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference

More information

End User Guide The guide for email/ftp account owner

End User Guide The guide for email/ftp account owner End User Guide The guide for email/ftp account owner ServerDirector Version 3.7 Table Of Contents Introduction...1 Logging In...1 Logging Out...3 Installing SSL License...3 System Requirements...4 Navigating...4

More information

Web Conferencing Version 8.3 Troubleshooting Guide

Web Conferencing Version 8.3 Troubleshooting Guide System Requirements General Requirements Web Conferencing Version 8.3 Troubleshooting Guide Listed below are the minimum requirements for participants accessing the web conferencing service. Systems which

More information

Troubleshooting AVAYA Meeting Exchange

Troubleshooting AVAYA Meeting Exchange Troubleshooting AVAYA Meeting Exchange Is my browser supported? Avaya Web Conferencing supports the following browser clients for joining conferences (with the described limitations). The supported browsers

More information

A system is a set of integrated components interacting with each other to serve a common purpose.

A system is a set of integrated components interacting with each other to serve a common purpose. SYSTEM DEVELOPMENT AND THE WATERFALL MODEL What is a System? (Ch. 18) A system is a set of integrated components interacting with each other to serve a common purpose. A computer-based system is a system

More information

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

Internet Technologies_1. Doc. Ing. František Huňka, CSc. 1 Internet Technologies_1 Doc. Ing. František Huňka, CSc. Outline of the Course 2 Internet and www history. Markup languages. Software tools. HTTP protocol. Basic architecture of the web systems. XHTML

More information

COURSE CURRICULUM COURSE TITLE: WEB PROGRAMMING USING ASP.NET (COURSE CODE: 3351603)

COURSE CURRICULUM COURSE TITLE: WEB PROGRAMMING USING ASP.NET (COURSE CODE: 3351603) Web Programming using Course code: 3351603 GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT 1. RATIONALE COURSE CURRICULUM COURSE TITLE: WEB PROGRAMMING USING (COURSE CODE: 3351603) Diploma Program

More information

GETTING STARTED To get started using Access My Portfolio, you will perform five important tasks, which are described in detail in this guide:

GETTING STARTED To get started using Access My Portfolio, you will perform five important tasks, which are described in detail in this guide: Access My Portfolio INVESTOR GUIDE accessmyportfolio.com GETTING STARTED To get started using Access My Portfolio, you will perform five important tasks, which are described in detail in this guide: 1.

More information

4.2 Understand Microsoft ASP.NET Web Application Development

4.2 Understand Microsoft ASP.NET Web Application Development L E S S O N 4 4.1 Understand Web Page Development 4.2 Understand Microsoft ASP.NET Web Application Development 4.3 Understand Web Hosting 4.4 Understand Web Services MTA Software Fundamentals 4 Test L

More information

Creating Electronic Portfolios using Microsoft Word and Excel

Creating Electronic Portfolios using Microsoft Word and Excel Step-by-Step Creating Electronic Portfolios using Microsoft Word and Excel The Reflective Portfolio document will include the following: A Cover Page for the portfolio - Include a Picture or graphic A

More information

Checklist for Web Application Testing

Checklist for Web Application Testing Checklist for Web Application Testing July 27, 2004 Submitted By Infosys Technologies Limited Author Setumadhav Kulkarni ([email protected]) Web Testing Checklist.doc Page 1 of 9 COPYRIGHT

More information

Managing a Geographic Database From Mobile Devices Through OGC Web Services

Managing a Geographic Database From Mobile Devices Through OGC Web Services Managing a Geographic Database From Mobile Devices Through OGC Web Services Nieves R. Brisaboa 1, Miguel R. Luaces 1, Jose R. Parama 1, and Jose R. Viqueira 2 1 Database Laboratory, University of A Coruña,

More information

GUIDE TO WEBSITES AND E-COMMERCE

GUIDE TO WEBSITES AND E-COMMERCE GUIDE TO WEBSITES AND E-COMMERCE Version 1.0, 26-Sept-01 This document is available from www.webcentro.com.au 2001, WebCentro WebCentro Guide To Websites And E-commerce CONTENTS 1. What is a Website? 1

More information

Content Management Using Rational Unified Process Part 1: Content Management Defined

Content Management Using Rational Unified Process Part 1: Content Management Defined Content Management Using Rational Unified Process Part 1: Content Management Defined Introduction This paper presents an overview of content management, particularly as it relates to delivering content

More information

Student Getting Started Guide

Student Getting Started Guide with with Student Getting Started Guide TABLE OF CONTENTS Table of Contents FIRST STEPS TO ENSURE SUCCESS... 3 Ensure System Requirements are met on Your Computer... 3 Find Out Which Operating System Is

More information

Full-scale Online Event Ticketing System The Design and Implementation

Full-scale Online Event Ticketing System The Design and Implementation ABSTRACT Full-scale Online Event Ticketing System The Design and Implementation The paper analyzed the system requirements for online shopping in general and specific requirements for event ticket online

More information

SecureClient Central Installation Guide. September 2014

SecureClient Central Installation Guide. September 2014 SecureClient Central Installation Guide September 2014 September 2014 3 of 12 Table of contents 1. About this guide... 5 2. System requirements... 6 3. Installation... 7 4. Software upgrades... 12 Appendix

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Capacities Overview: 9.7 MultiTouch Screen with IPS technology Access to AndroidTM apps HD Multimedia playback

Capacities Overview: 9.7 MultiTouch Screen with IPS technology Access to AndroidTM apps HD Multimedia playback Arnova introduces a new HD multimedia tablet: The ARNOVA 9 G2 Equipped with a sharp, bright 9.7 (1024x768) LCD touchscreen, it delivers amazing display quality. The combination between Android TM 2.3 Gingerbread

More information

Mobile Operating Systems Lesson 03 PalmOS Part 1

Mobile Operating Systems Lesson 03 PalmOS Part 1 Mobile Operating Systems Lesson 03 PalmOS Part 1 Oxford University Press 2007. All rights reserved. 1 PalmOS An OS for handheld devices Designed for highly efficient running of small productivity programs

More information

Topics in Website Testing. [Reading assignment: Chapter 14, pp. 211-227]

Topics in Website Testing. [Reading assignment: Chapter 14, pp. 211-227] Topics in Website Testing [Reading assignment: Chapter 14, pp. 211-227] How to test a website Easiest way to start is by treating the web site as a black box. Look at a sample website such as www.apple.com

More information

Microsoft Office System Tip Sheet

Microsoft Office System Tip Sheet The 2007 Microsoft Office System The 2007 Microsoft Office system is a complete set of desktop and server software that can help streamline the way you and your people do business. This latest release

More information

Gauge Drawing Tool... 8. Slider Drawing Tool... 8. Toggle Button Drawing Tool... 8. One-Way List Drawing Tool... 8

Gauge Drawing Tool... 8. Slider Drawing Tool... 8. Toggle Button Drawing Tool... 8. One-Way List Drawing Tool... 8 v. 20120510 Table of Contents RTiPanel Overview and Requirements... 3 Software Requirements:... 3 Hardware Requirements:... 3 Network Requirements:... 3 Licensing Requirements:... 4 Basic Integration Designer

More information

Cache Configuration Reference

Cache Configuration Reference Sitecore CMS 6.2 Cache Configuration Reference Rev: 2009-11-20 Sitecore CMS 6.2 Cache Configuration Reference Tips and Techniques for Administrators and Developers Table of Contents Chapter 1 Introduction...

More information

If your organization is not already

If your organization is not already Before you build your Web site, you need a solid design. Eden Watt At a Glance When you develop your first e-commerce site, you will discover that there are a few new things to learn about application

More information

Outline. CIW Web Design Specialist. Course Content

Outline. CIW Web Design Specialist. Course Content CIW Web Design Specialist Description The Web Design Specialist course (formerly titled Design Methodology and Technology) teaches you how to design and publish Web sites. General topics include Web Site

More information

WEBMAIL User s Manual

WEBMAIL User s Manual WEBMAIL User s Manual Overview What it is: What it is not: A convenient method of retrieving and sending mails while you re away from your home computer. A sophisticated mail client meant to be your primary

More information

ISL AlwaysOn 1.0 Manual

ISL AlwaysOn 1.0 Manual Contents 2 Table of Contents Foreword 0 Part I Introduction 3 Part II Security Statement 4 Part III System requirements 6 Part IV Setting up ISL AlwaysOn on a computer 7... 1 Register ISL Online account

More information

Change Management for Rational DOORS User s Guide

Change Management for Rational DOORS User s Guide Change Management for Rational DOORS User s Guide Before using this information, read the general information under Appendix: Notices on page 58. This edition applies to Change Management for Rational

More information

ADOBE DREAMWEAVER CS3 TUTORIAL

ADOBE DREAMWEAVER CS3 TUTORIAL ADOBE DREAMWEAVER CS3 TUTORIAL 1 TABLE OF CONTENTS I. GETTING S TARTED... 2 II. CREATING A WEBPAGE... 2 III. DESIGN AND LAYOUT... 3 IV. INSERTING AND USING TABLES... 4 A. WHY USE TABLES... 4 B. HOW TO

More information

Virtual Exhibit 5.0 requires that you have PastPerfect version 5.0 or higher with the MultiMedia and Virtual Exhibit Upgrades.

Virtual Exhibit 5.0 requires that you have PastPerfect version 5.0 or higher with the MultiMedia and Virtual Exhibit Upgrades. 28 VIRTUAL EXHIBIT Virtual Exhibit (VE) is the instant Web exhibit creation tool for PastPerfect Museum Software. Virtual Exhibit converts selected collection records and images from PastPerfect to HTML

More information

A Monitored Student Testing Application Using Cloud Computing

A Monitored Student Testing Application Using Cloud Computing A Monitored Student Testing Application Using Cloud Computing R. Mullapudi and G. Hsieh Department of Computer Science, Norfolk State University, Norfolk, Virginia, USA [email protected], [email protected]

More information

Adobe Dreamweaver CC 14 Tutorial

Adobe Dreamweaver CC 14 Tutorial Adobe Dreamweaver CC 14 Tutorial GETTING STARTED This tutorial focuses on the basic steps involved in creating an attractive, functional website. In using this tutorial you will learn to design a site

More information

VIA COLLAGE Deployment Guide

VIA COLLAGE Deployment Guide VIA COLLAGE Deployment Guide www.true-collaboration.com Infinite Ways to Collaborate CONTENTS Introduction... 3 User Experience... 3 Pre-Deployment Planning... 3 Connectivity... 3 Network Addressing...

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Working with RD Web Access in Windows Server 2012

Working with RD Web Access in Windows Server 2012 Working with RD Web Access in Windows Server 2012 Introduction to RD Web Access So far in this series we have talked about how to successfully deploy and manage a Microsoft Windows Server 2012 VDI environment.

More information

Web Browsers And Mailing Tools

Web Browsers And Mailing Tools Web Browsers And Mailing Tools Introduction: Network A network is an interconnection between two or more computers or other computing devices which are connected together usually through a cable to share

More information

LOCKSS on LINUX. Installation Manual and the OpenBSD Transition 02/17/2011

LOCKSS on LINUX. Installation Manual and the OpenBSD Transition 02/17/2011 LOCKSS on LINUX Installation Manual and the OpenBSD Transition 02/17/2011 1 Table of Contents Overview... 3 LOCKSS Hardware... 5 Installation Checklist... 7 BIOS Settings... 10 Installation... 11 Firewall

More information

You can make your own layout / theme for your PowerPoint project.

You can make your own layout / theme for your PowerPoint project. About the PowerPoint Intermediate Workshop The purpose of the PowerPoint Intermediate workshop is to inform users more about the design aspect of making presentations. We will build on the skills learned

More information

ICAPRG409A Develop mobile applications

ICAPRG409A Develop mobile applications ICAPRG409A Develop mobile applications Release: 1 ICAPRG409A Develop mobile applications Modification History Release Release 1 Comments This Unit first released with ICA11 Information and Communications

More information

Voluntary Product Accessibility Template Blackboard Learn Release 9.1 April 2014 (Published April 30, 2014)

Voluntary Product Accessibility Template Blackboard Learn Release 9.1 April 2014 (Published April 30, 2014) Voluntary Product Accessibility Template Blackboard Learn Release 9.1 April 2014 (Published April 30, 2014) Contents: Introduction Key Improvements VPAT Section 1194.21: Software Applications and Operating

More information

2/24/2010 ClassApps.com

2/24/2010 ClassApps.com SelectSurvey.NET Training Manual This document is intended to be a simple visual guide for non technical users to help with basic survey creation, management and deployment. 2/24/2010 ClassApps.com Getting

More information

Short notes on webpage programming languages

Short notes on webpage programming languages Short notes on webpage programming languages What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is a markup language A markup language is a set of

More information

CHAPTER 9: THE EVOLVING INTERNET

CHAPTER 9: THE EVOLVING INTERNET CHAPTER 9: THE EVOLVING INTERNET Multiple Choice: 1. What was the department of the U.S. government that developed the initial stages of the Internet? A. Department of Commerce B. Department of Defense

More information