JSF vs ASP.NET, What are their limits?



Similar documents
The Comparison of J2EE and.net for e-business

Glassfish, JAVA EE, Servlets, JSP, EJB

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

In this chapter, we lay the foundation for all our further discussions. We start

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

IBM Rational Web Developer for WebSphere Software Version 6.0

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo

A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software

Data Sheet VISUAL COBOL WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

CrownPeak Java Web Hosting. Version 0.20

Building Web Applications, Servlets, JSP and JDBC

JAVA/J2EE DEVELOPER RESUME

VB.NET - WEB PROGRAMMING

An introduction to creating JSF applications in Rational Application Developer Version 8.0

A Performance Comparison of Web Development Technologies to Distribute Multimedia across an Intranet

BusinessObjects Enterprise XI Release 2 Administrator s Guide

ASP.NET. Web Programming. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics

Building and Using Web Services With JDeveloper 11g

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Realization Strategies for Rich Clients by Web Services

DB2 Application Development and Migration Tools

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications


Expanded contents. Section 1. Chapter 2. The essence off ASP.NET web programming. An introduction to ASP.NET web programming

CATALOG OF CLASSES IT and Technical Courses

Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB)

Oracle Application Development Framework Overview

NetBeans IDE Field Guide

Portals, Portlets & Liferay Platform

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

ASP.NET Using C# (VS2012)

Version Overview. Business value

MEALS2SHARE Neighborhood Home Cooked Food Sharing Web Application

Course Number: IAC-SOFT-WDAD Web Design and Application Development

Skillsoft Course Directory

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Introduction to Sun ONE Application Server 7

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

What Is the Java TM 2 Platform, Enterprise Edition?

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

A review and analysis of technologies for developing web applications

Crystal Reports for Eclipse

Java (J2SE & J2EE) and Web Development Training Catalog

Building Web Services with Apache Axis2

JBoss SOAP Web Services User Guide. Version: M5

Modern Software Development Tools on OpenVMS

Building Java Servlets with Oracle JDeveloper

COURSE DIRECTORY MAY 2008

Developing Database Business Applications using VB.NET

Install guide for Websphere 7.0

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Web services with WebSphere Studio: Deploy and publish

BarTender s ActiveX Automation Interface. The World's Leading Software for Label, Barcode, RFID & Card Printing

WebSphere Server Administration Course

Strategies for Application Server Deployment Using Multiplatform Installers. October 17-18, 2006 l Santa Clara, CA

SSC - Web development Model-View-Controller for Java web application development

Enterprise Service Bus

HTML5. Turn this page to see Quick Guide of CTTC

DeskNow. Ventia Pty. Ltd. Advanced setup. Version : 3.2 Date : 4 January 2007

For Course Details, visit:

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Client/server is a network architecture that divides functions into client and server

ActiveVOS Server Architecture. March 2009

MEGA Web Application Architecture Overview MEGA 2009 SP4

IBM WebSphere Server Administration

Deploying Oracle Business Intelligence Publisher in J2EE Application Servers Release

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

Virtual Credit Card Processing System

Basic TCP/IP networking knowledge of client/server concepts Basic Linux commands and desktop navigation (if don't know we will cover it )

A Comparison of Web Development Technologies: WebObjects vs. ASP.NET

.NET 3.0 vs. IBM WebSphere 6.1 Benchmark Results

WHITE PAPER. TimeScape.NET. Increasing development productivity with TimeScape, Microsoft.NET and web services TIMESCAPE ENTERPRISE SOLUTIONS

IBM Rational Rapid Developer Components & Web Services

ANDROID DEVELOPER RESUME USA

Skillsoft Course Directory January 2014

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Server-Side Scripting and Web Development. By Susan L. Miertschin

PROGRESS Portal Access Whitepaper

Programming in C# with Microsoft Visual Studio 2010

Productivity Comparison for Building Applications and Web Services

Framework Adoption for Java Enterprise Application Development

Web Hosting. Comprehensive, scalable solutions for hosting dynamic websites, secure web services, and enterprise applications.

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Windows 2000 / NT 4.0 / 95 / 98, MS-DOS, Suse Operating Systems

BIRT Application and BIRT Report Deployment Functional Specification

ORACLE ADF MOBILE DATA SHEET

Rapid Application Development. and Application Generation Tools. Walter Knesel

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

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

HPC Portal Development Platform with E-Business and HPC Portlets

ASP.NET 2.0, AJAX And Expression Web. Name Title Microsoft Corporation

Tutorial: Building a Web Application with Struts

Design Approaches of Web Application with Efficient Performance in JAVA

Oracle Service Bus Examples and Tutorials

Transcription:

JSF vs ASP.NET, What are their limits? Mostafa Pordel Farahnaz Yekeh Malardalen University Malardalen University Vasteras, Sweden Vasteas, Sweden mpl08001@mdh.student.se fyh08001@mdh.student.se ABSTRACT It is more than a decade that Microsoft and Java Communities started a competition on different subjects. New web based technologies are more focused comparing to previous years. Each company is working hard to add more features to Web Applications. In this paper, we compare ASP.NET with JavaServer Faces (JSF). We compare and contrast different features of these two technologies. For each feature we discuss distinct similarities or differences that both technologies have. Comparison include: IDE, Database, Configuration Files, Community Support, WebForms, Dependencies, State Management and MVC. We will show some limitations that both of these technologies have ahead. This paper is useful especially for those who are not familiar with web development methodologies and they need to start it very fast or those who want to migrate to new environment (ASP.NET or JSF) and want to map their knowledge with a new framework. Keywords JSF, ASP.NET, Comparison, Web Application, J2EE,.NET, IIS, Apache, Tomcat. 1. INTRODUCTION World Wide Web is growing very fast and more and more companies, research institutes and universities are presenting their contents on the Internet. As.Net and Java are so much popular platforms and they have most Market share [12] we compare their correspondence web technologies, ASP.NET and JSF. Nowadays there are different papers or forums that have topics comparing Microsoft technologies with none Microsoft technologies mostly J2EE. Most of these comparisons are done by non-science societies and groups. Usually they have defended their popular technology without enough references and scientific comparison. On the other hand there are some papers that belongs to a community that support special vendor, so they may not consider all features of the other side technology to compare because of their skills or their interests. We tried to avoid this. We are two in a group that one of us has experience in.net programming, as a Microsoft technology programmer, and the other one works with Java programming. We also used some scientific references to explain our experience better. We discuss about JavaServer Faces (JSF) and ASP.NET technologies, which are two frameworks for developing web applications. Some features are very much similar on both technologies so nothing is said about differences and vice versa. This section includes an overview of two platforms: J2EE and.net. The structure of each one is showed in a way you can understand ASP.NET and JSF architecture better. In section two some features of web technologies are compared for ASP.NET and JSF. Conclusion of this paper is in section three. 1.1 J2EE Java 2 Enterprise Edition (J2EE) is a widely used platform for server programming in the Java programming language. It is used for building distributed enterprise applications and can be classified into the following structures: 1- J2ME (Java 2 Platform, Micro Edition) or Java ME, which is used mostly in conjunction with lower end devices. For example it has become a popular option for creating games for cell phones, as they can be emulated on a PC during the development stage and easily uploaded to phones. 2- J2SE (Java 2 Platform, Standard Edition) or Java SE is a widely used platform for programming in the Java language. It is primary aimed to use on desktop machines or laptops. J2SE consists of a virtual machine and a set of libraries which must be used to run Java programs. 3- J2EE (Java 2 Platform, Enterprise Edition) or Java EE is used on servers for servers programming. A number of programming and scripting languages such as Java, HTML, JSP, HTML and SQL is compromised with J2EE. And it has the benefits of Java such as open source available libraries, server-side development base and cross-platform portability. 1.1.1 J2EE Architecture Figure one shows the architecture of J2EE and the position of JSF in this platform [1]. As it is shown a multi-tiered architecture is designed to partition the system into distinct functional units: Client, Presentation, Business Logic, Integration, and Enterprise Information System (EIS) / Database Management System. The client tier is where the data model is consumed and presented, which can be any web browser like Internet Explorer or Mozilla Firefox. Presentation Layer presents Business Rules to the client. Presentation Layer takes user input, validates them and supplies them to Business Logic Layer. It also controls the page navigation and maintains Application s session state. For the Presentation Layer, several tag libraries (Tomahawk, Sandbox, Extension and Core JSF) of JavaServer Faces were used.

As it is shown in this picture, the.net application is hosted in a container. The role of this container is providing necessary qualities of services for enterprise application. For example security, transactions and message servicing is done by this part. Figure 1: J2EE Architecture Business Logic Layer processes the requests form the presentation layer and interacts with the integration layer. The integration tier handles the data persistence with database. Different approaches such as Pure JDBC (Java Database Connectivity), ORM (Object Relational Mapping) or Entity Beans can be used to implement the integration tier. 1.2.NET.NET is a framework in which Windows applications may be developed and run. This Framework is developed by Microsoft and helps to connect information and systems through software and allows using of several programming languages and libraries. The.NET Framework is a common environment for building, deploying, and running Web Services, Web Applications and consists of: 1- The Common Language Runtime (CLR): CLR acts independent of any particular language. And it is used as a development environment for building different types of applications. For example it supports Visual Basic, C#, C++, COBOL and JScript (The Microsoft version of JavaScript). 2- The Framework Class Libraries (FCL): FCL is the collective name for the numerous classes that include the.net framework and is used for runtime main functionalities like interaction with databases, generating XML and basic types and collections. It contains common class libraries such as ASP.NET and DAO.NET. By using.net technology, secure applications will be built quickly and development and management of these applications will be possible with web services. Figure 2:.NET Architecture Business processing and data logic is done by business layer of.net application by using.net managed Components. Connecting to database is done by using Active Data Objects (ADO.NET) and existing systems. This is done by using services which are provided by Microsoft Host integration Server. It can also connect to business partners using web services technologies such as SOAP, UDD and WSDL. Business partners can connect with the.net application through web services technologies such as SOAP, UDDI, WSDL and BizTalk. Clients, web browsers or wireless devices connect to Active Server Pages (ASP.NET) which renders user interfaces in HTML, XHTML or WML. Heavyweight user interfaces are built using Windows Forms [22]. 1.3 ASP.NET ASP.NET is a Microsoft technology of for developing web applications. It is a framework from.net platform and it is a successor of the Microsoft s ASP (Active Server Pages). ASP.NET use Common Language Runtime (CLR) which enables developers to program web application with.net Languages. Microsoft created ASP.NET according to complaints and problems of ASP. The main distinction between ASP and ASP.NET is the separation of presentation layer from content. So Clean Code is the benefit of ASP.NET over ASP. ASP.NET pages are known as Web Forms. They are ASPX file extensions that can hold HTML tags as well as server side controls. ASP.NET 1.0 released with.net Framework 1.0 on January 2002. 1.2.1.NET Architecture Figure two shows the place of ASP.NET in.net Architecture.

1.4 JSF JavaServer Faces (JSF) is a framework for web developing. It is a Java based technology from software vendors such as Sun, IBM and Oracle. JSF is a member of J2EE (Java 2 Enterprise Edition) family and this technology comes after representing JSP (Java Server Pages) and is a successor of JSP web applications which are used today but don t have the efficiency of JSF. JSF support component based approach for web development. There are some other technologies that don t support this concept as the first priority. For example Java MVC is a request driven approach for web development. JSF technology includes: 1- A collection of APIs that is used to represent User Interface components. These APIs manage event handling, input validation, component states, page navigation, initializing and accessibility. 2- A custom tag library for Java Server Pages (JSP) for handling JSF interfaces in JSP pages [14]. 3- State management 4- Managed Beans that are java beans created with dependency injection (DI). 5- Unified Expression Languages for both JSP and ASP. JSF 1.0 released on 11 th of March 2004 by Java Community Process. The last version of JSF is 1.2 that released on 11 th of May 2006 and upcoming JSF 2.0 is now being developed. 2. Comparison JavaServer Faces (JSF) and ASP.NET are technologies for developing web applications. ASP.NET and JSF are both based on component technology and event driven methodology of software developing. ASP.NET components are called controls where JSF developers use component for naming components. In this section first.net & J2EE market value are compared as key comparison of platforms of ASP.NET and JSF. Then ASP.NET and JSF features are compared with each other. Each part includes main similarities, differences and limitations of these two technologies. 2.1.Net & J2EE Market Value It is not realistic for firms to develop all new developments on a single platform. So the main differences between platforms should be understood and according to each field, the proper platform should be chosen [14]. Table one represents the percentage of using each platform in development work in year 2004 [15]. This information is gotten by asking North American enterprises the question that which platform they will use for their development in that year. The results show that.net is the primary platform in their development. But J2EE is stronger that.net in Utilities and Telecom and Finance and Insurance technologies. Instead.NET is stronger than J2EE in Manufacturing, Retail and Wholesale trade, Media, entertainment and leisure and Business Services. Table 1: Comparison according to 322 software decisionmakers at North American Companies J2EE.NET Public Sector 35% 65% Business Services 36% 64% Media, Entertainment and Leisure 38% 62% Retail and Wholesale Trade 42% 58% Manufacturing 45% 55% Finance and Insurance 56% 44% Utilities and Telecom 65% 35% Overall 44% 56% It also said that most of Microsoft's market share will be dominated by, but not solely limited to, SMBs [small and midsized businesses] through 2009. And larger-scale national and multinational enterprises are more likely to have significant investments in largely heterogeneous data-center infrastructures (for example, a mixture of mainframe, AS/400, UNIX and Win32). Java's cross-platform support and transportable code will drive significant investments by these larger entities toward J2EE. [16] Researches result about Market shows that both platforms of Java and.net will garner roughly equal market share. And the following Figure shows this Marketing share during years 1998 and 2005. [16] Figure 3: Comparison of.net and Java platforms usage in new development projects for some years. Overall 56% of.net usage is a key issue. Also according to figure three, Mictosoft.NET usage is growing faster than JAVA. Although we can conclude that for subject that security is the first priority, as it is for financial and insurance systems, JAVA is preferred as a trusted platform. 2.2 IDE IDE which stands from Integrated Development Environment is a software application that provides facilities to programmers for software development. It is an important feature for development,

especially for beginners who prefer to find everything easy at the start. There is only one IDE for ASP.NET and that is Visual Studio.NET, but in the other hand we have so many different IDEs for JSF, such as: JDeveloper of Oracle, Java Studio Creator of Sun, WSAD of IBM and new IDE of M7 that is Nitrox JSF. All of these IDEs provide visual editing for JSF components [7]. Here we compare some features of these two different IDE groups. 2.2.1 User friendly ASP.NET2 supports new feature called Smart Tag. Smart Tags are additional menus that allow developers for customizing a control very quickly. For example when a developer drag and drops a GridView to a web form, Smart Tag would suggest Auto Format, Data Source, Columns and Templates while all the properties of GridView are more than fifty items. This feature helps even to set require and necessary properties for a control and prevents unnecessary and rarely useful properties. It also affects the speed of development. On the other hand, as there are different IDSs for developing JSF, there are different implementations of the same definition of Smart Tags of ASP.NET. Sun s Studio provides some features of components by right clicking on a component. For example for DataTable component, developer can reach table lay out. Also IBM has different shortcuts for its properties. JDeveloper of Oracle provides properties of a component through a wizard. Finally none of J2EE IDE presented intelligence concept similar to Smart Tags yet. Visual Studio provides large amount of controls that helps developers implement web pages much faster than JSF. Even learning ASP.NET is much easier than JSF. ASP.NET supports different languages including C#, C++, J#, Visual Basic, while JSF only supports Java language. information. ASP.NET2 uses ADO features for accessing data. There is a GridView component that is a successor of an old component named DataGrid. This component has new useful features. ASP.NET developers can also drag and drop a table directly from server explorer to a web form. Visual Studio would automatically generate all coded needed for binding a GridView with Database table. DataTable, DataSet and some other classes are used to manage data view. With JSF, there is more than one solution. As an example, with Java Studio Creator there is a component named Table. DataProvider object provides utilized Java database connectivity (JDBC). Developers use JDBC RowSet to work with database in offline and online modes [2]. Figure 4: ADO.Net Architecture For JSF we can use three tier models to access data. Commands are sent to a layer named middle tier. Middle tier sends command to data source. Data source interprets commands and turns back the result to the middle tier. Again middle tire would have some interpretations and it would send the result to the user layer. The process is much more obvious in the picture [8]. 2.2.2 Built in templates There are much more built in templates in ASP.NET in comparison with JSF. Developers can use Web Forms, Style Sheet, HTML page, XML file, Resource file, Generic handler, Mobile form, Jscript file, XSLT file, Class Diagram, Master Page, Web Service, Global Application class, XML Scheme, SQL Database, Site Map, VB Script file, Mobile Web User Control, Skin file, Web user Control, Class, Web Configuration file, Text file, Dataset, Crystal report, Report, Mobile Web Configuration file and Browser file easily in their systems. In JSF some of these templates are available and the others are in progress. 2.2.3 Costs For ASP.NET you pay for windows (IIS), Visual Studio and maybe Microsoft SQL Server but for Java it depends on you. Maybe you want some commercial supports or maybe you want to save your money at the beginning. If you decide to not pay, you can choose Eclipse as an IDE, MySQL as a database and Tomcat or JBOSS as a server. They are all free for download. 2.3 Database Both technologies do not have good components based on real OOP (Object Oriented Programming) for displaying data rather than having objects they provide some functions to view Figure 5: Three-tier Architecture for JSF data access [4] 2.4 Configuration Files The main file for configuration in JSF is faces-config.xml file. J2EE specification uses this file as Application Configuration Resource File. It is possible to have more than one xml configuration file. By default JSF application file is placed in /WEB-INF/faces-config.xml path. If this configuration file exists in any of jar files within the /WEB-INF/lib/ path of application, it is loaded as the main configuration file of the application. When you use different software patterns including

Factory Pattern, Inversion Technology and Model View Controller (MVC), Application configuration file glue the links together in efficient xml elements. Web.config is a similar concept in ASP.NET. This xml file contains information that control security configuration, module loading, application language, compilation settings and session state configuration. It is common to use Web.config file to add connection strings of databases of web application. Web.config is added to the root folder of project by Visual Studio when you new item of Application Configuration file to your ASP.NET web application. Although there are some specific settings for each technology configuration file, but both of them play important roles on each technology and from this point of view we consider them similar. If you just take a look at web application files of any technology, you will recognize many settings and patterns that are used on that application and it helps you to set application parameters very fast. 2.5 Community Support Big companies like IBM, Redhat, SUN Micro System, Oracle and Open Source communities, Universities and Research Institutes support JSF rather than ASP.NET. Although the amount of supporters for J2EE and JSF are much more than ASP.NET, but industrial communities more implement ASP.NET rather than JSF. Of course it can be mentioned that Microsoft market value is more than all each of companies mentioned above [5]. The most advantages of ASP.NET are the Enterprise IDE which has been developed and managed with the biggest software company, Microsoft. The most important feature of JSF is just in the opposite side. There are many institutes and companies support JSF. JSF pages are cross platforms and could be viewed on different operating systems and web browsers including Internet Explorer of Microsoft. During the years, various high organizations have switched from different choices for different reasons. It means that they upgrade to a scalable platform which provides their requirements more (Java solution or.net solution). Here are some samples and their reasons for switching between these two common platforms. -.NET to J2EE: 1- Betfair, UK-based Online Gambling Site (Issue: security) We chose J2EE due to its proven enterprise track record, security, and maintainability..net offered faster development and performance, but for a mission-critical, 24x7 site such as Betfair.com, we chose the proven, secure technology - Betfair Chief Technology Officer, David Yu. [17] 2- EBay, Online Auction Site (Issue: Availability) Reasons: availability, performance, scalability, partnership with vendor. With WebSphere software, we have solid tools to help us respond quickly to our customers changing needs - by providing over 99.9 percent site availability - Chuck Geiger, Vice President of Product Development. [19] By standardizing on WebSphere software, says Geiger, we have an open J2EE technology platform capable of managing the highest volumes of transactions. In addition, WebSphere has helped us to become more efficient and to streamline our IT processes, by reducing duplication of efforts and shortening application development time. [20] - J2EE to.net: 1- Random House, CodeNotesText, Companion Site (Issue: Vendor Partnership) Reasons: Ease of managing products, licensing fees and modifications. There were several problems with the original site. The most serious problem was that it used third-party products from seven different vendors. Having several unsynchronized but interdependent components in one system can be a maintenance nightmare. [18] 2.6 WebForms HTML forms can not capable to support lots of new features of web developing technologies. As a result web forms have been proposed. In both JSF and ASP.NET, the main object of Web Forms is to add flexible and good components to the client side. The difficulties of WebForms are the several of web explorers on client side. Each of these web browsers has been developed by a special company and they do not cover same technologies. Another challenge of WebForms is the usage of stateless HTTP protocol. Controls and components of WebForms designed to compensate this stateless behavior of HTTP protocol. A chain of actions is needed to complete a request and response to a client side web form in the server side server. This chain of actions is named a lifecycle of a page [6]. The main difference between JSF and ASP.NET lifecycle of a page is the difference of the way that components are rendered to user. In JSF mostly components delegate rendering to a renderer object, while in ASP.NET components render themselves on the page they want. Renderer objects are available on RenderKits. Each JSF implementation can have a default html RenderKit. This is a powerful feature of JSF. Another different aspect of JSF and ASP.NET WebForms relates to initializing of a page object. ASP.NET pages use page_load() method for each page to initialize it. In JSF developers can use a class constructor of a page to initialize it. But finally the role of class constructor is equivalent to page_load() of ASP.NET. ASP.NET components can call Server.Transfer() to go to a new page. However in JSF there is no such a direct reference changing command. Renderer handles page view of web application. There is a configuration file that is used to look and compare return value to find out the pages should be shown. <navigation-rule> <from-view-id>/conferencerooms.jsp</fromview-id> <navigation-case> <from-outcome>view</from-outcome> <to-view-id>/roomreservations.jsp</to-viewid> </navigation-case> <navigation-case> <from-outcome>reserve</from-outcome> <to-view-id>/reserveroom.jsp</to-view-id> </navigation-case> </navigation-rule> Code 1) Mapping that was created with Visual designer in Java Studio Creator [2]. It is used by Renderer.

2.7 Dependencies Servers for hosting ASP.NET has only one choice. It only runs on IIS (Internet Information Services) Of Windows. But for JSF you have several options, you have commercial and open source choices. Apache is the most popular one. Sun AS, JBoss AS, Oracle AS, Weblogic, Tomcat, and some more are available for JSF. Specially discussing about Apache web server, it does not support.net Integrated. But on the other hand IIS supports JSP (the predecessor previous technology). The most different features between IIS and Apache are independent request handling and thread supporting. IIS has no limitation on these features, but Apache is thread supported on some operating systems. Also Apache has some limited independent request handler [9]. For Security issues and authentication, IIS provides active directory authentication while Apache service provides this feature only with third party modules. Apache is free and it can be installed on free operating systems like Linux. On the other hand, IIS is a part of Windows NT and of course users should pay for Windows. Languages for codes If you use ASP.NET to develop a web page, you have several language choices to write codes. C#.NET, Visual Basic, J#.NET and VC++ can be used in server side of ASP.NET to write codes. Java is the only option that you have when you choose JSF. Table 2: IIS and Apache features Comparison Feature IIS Apache ASP Yes With Chilisoft, Apache::ASP, or modmono CGI Yes Yes Perl Yes Yes Python Yes Yes PHP Yes Yes JSP Yes Yes.NET Integrated Yes No With ASP.NET you can have some available controls for login; Visual Studio 2005 (ASP.NET2) has a login controls tab in toolbox. This tab control includes: Login, LoginView, PasswordRecovery, LoginStatus, LoginName, CreateUserWizard and ChangePassword. These controls help developers to quickly build any authentication form he desires. There are no such controls available for JSFs originally and they should be written manually [10]. 2.8 State Management ASP.NET and JSF pages are accessible with stateless HTTP protocol. Therefore each application that needs to store status should manage it on its own. There are two objects that help ASP.NET developers to manage states. Application object is used to share a common date for all clients. A Java developer can use a session bean to share data for application. Below is a sample of a session bean that has been used in an application [2]. <managed-bean> <managed-beanname>reservationssessionbean</managed-beanname> <managed-beanclass>webreservations.reservationssessionbea n</managed-bean-class> <managed-bean-scope>session</managed-beanscope> </managed-bean> <managed-bean> <managed-bean-name>conferencerooms</managedbean-name> <managed-beanclass>webreservations.conferencerooms</manag ed-bean-class> <managed-bean-scope>request</managed-beanscope> </managed-bean> Code 2) Use of session bean to store data Simply for ASP.NET web application, if you want to add a welcome message to be shared for all clients you can use: Application [ message ] = message; The second message is a Message object. Now you can use Application[ message ] when ever needed. For example if you want to set a welcome Label to this message you can use the following code in page_load() event handler of that page: protected void Page_Load (object sender, EventArgs e) { //casting to Message Object; Message message = Application[ message ] as Message; lblwelcome.text = message.welcome; //Use Welcome message of Message object to set lblwelcome label } Code 3) Retrieve a common message in page_load() event handler of a ASP.NET web page. In ASP.NET, for collecting states of each client you can use Session object. For example if you want to store customer object after a successful authentication you can use code four to store customer objects. protected void login_loggingin (object sender, LoginCancelEventArgs e) { // Authenticate customer CustomerBso customerbso = new CustomerBso(); User customer = new User(); customer.username = login.username; customer.password = login.password; customer =customerbso.login(customer); // use business layer to fetch customer, if(customer!= null)

{ } else { }} Session [ customer ] = customer; Server.Transfer("Default.aspx"); Server.Transfer("LoginError.aspx"); Code 4) Authentication and using Session Object to store Customer Object. Again you can use Session [ customer ] to retrieve customer object when needed. Customer customer = Session [ customer ] as Customer; JSF developer can use StateManager to store sate. Again similar to.net you need to give objects to StateManager to save them. In JSF any object which is needed to be saved with StateManager should implement StateHolder or Serializable. In JSF, data is stored in two different ways: in component tree or in scoped beans. import javax.faces.context.facescontext; public void addinsession() { MySession mysession = new MySession(); mysession.setname(getmsg()); //getsession(bool), true if we want to //create new session, if want to use old //session then false FacesContext context = FacesContext.getCurrentInstance(); HttpSession session = (HttpSession) context.getexternalcontext().getsession(fals e); session.setattribute( sessionobj, mysession); if (session.getattribute( sessionobj )!= null) { MySession mysavedsession = (MySession) session.getattribute( sessionobj ); System.out.println( HTTP Session: + mysavedsession.getname()); } else { // do something }} Code 5) Using StateManager to store sate in JSF 2.9 MVC The Model Controller View (MVC) is a design pattern for separation business layer from user interface layer in web application projects. It consists of three main components: the Model that manages behavior and data domain, the View that manages displaying of information and the Controller that manages event handling of application [23]. Figure 6) MVC design pattern components (layers). There are several benefits of working on MVC pattern. With MVC, Project manager could manage project much easier. This is because of benefits of layering programming and within this architecture there are clear distinct tasks that could be assigned to different groups. So you have all benefits of layering programming with MVC but for the same reason you have common problems of them while working with this architecture. For example within this architecture you have a more complex system and more codes are needed for finishing your project (comparing to similar projects that don t use MVC). MVC pattern is implemented by ASP.NET and JSF. Even you can use your own implementation of MVC. We found that ASP.NET MVC is a bit easier while with JSF more details are needed to be studied. Table 3) Table bellow shows the different Items of MVC in both technologies. Items Different ASP.NET JSP Model Component Business Logic Servlet View Component Aspx files JSP s pages Controller One for each view is possible One controller 2.10 JSF and ASP.NET Files Both technologies use different file types. For a comparison of files that are needed with these tow technologies it may be interesting to have them all in two tables. File/Folder Jsfks /ant /JavaSource /WebContent /WEB-INF Table 4: JSF web application project files Description Project folder that is a project name A folder that holds ant builds scripts including build.xml A folder that contains your own Java classes and properties files. A folder that holds the Web application files used by the application server. A subfolder of WebContent that includes Web application files that are hidden from web.

/classes A subfolder of WEB-INF that contains compiled Java classes and copied properties files from JavaSource. /lib A subfolder of WEB-INF that includes libraries required by application. jsf-impl.ja jsf-pi.jar web.xml facesconfig.xml Pages Two files inside the lib folder. Every JSF application requires these files that contain some references. A Web Application Deployment Descriptor file of web application inside the WEB- INF folder. This is a XML file describes components that are used in application. A JavaServer Faces configuration file that is inside the WEB-INF. A folder inside the WebContent folder that holds JSP and HTML presentation pages. Table 5: ASP.NET web application project files File/Folder Global.asax ascx Ashx Asmx Axd Browser Description A file that is used for application-level logic Custom Web User Controls that are placed onto web pages. Files that are custom HTTP handlers. Web service pages that can be used in ASP.NET web service projects. If you enable tracing in your web application, Web.config requests trace.axd outputs application-level tracing. It has some other usage too. Browser capabilities files that are stored in XML format; (ASP.NET 2 features). Config Each application can have only one web.config file with this name. App_Code Cs/vb Dbml Master Resx sitemap Skin svc A folder that contains Web Application codes and the contents are not accessible through Internet Browsers. ASP.NET application code files (cs stands for C#, vb stands for Visual Basic). Application codes are placed inside the App_Code folder. Class Files that are the so called Linq to SQL files. Master pages files of Web Application. Resources Files of ASP.NET web application. Sitemap configuration files of projects. Theme skin files of Web Application. Windows Communication Foundation service file 3. Conclusion As it is obvious we cannot totally select one technology as a best solution in all subjects. Some seem to indicate that the.net framework achieved better results on some issues like IDE and Fast Developments but on the other hand this distinction even is not so much clear. For example some would prefer to not pay for the IDE so even IDE comparison could not be the same for all. Developers can decide each one depending on their usage. For example if a developer is a student in a university, it is much more recommended to use JSF. Instead for small businesses that do not have big financial supports, it may be better to use ASP.NET. They can complete their projects faster and easier and for the time being as Microsoft internet explorer users are much more than the other browsers users; they would not find much difficulty on their client side. As a whole choosing each of these technologies depends on many factors that has been discussed and each one should decide it himself. 4. REFERENCES [1] Priscope White Paper, J2EE/JSF Advantages & A Periscope Case Study, February 2007; http://www.periscopeinc.com/tech/j2ee_jsf_advantages_periscope_case_study.pdf [2] Michael Klaene; JavaServer Faces and ASP.NET - A Side by Side Look ; http://www.developer.com/net/asp/article.php/3572721 (last access: Oct 2008). [3] Oracle Developer, "About the Model 2 Versus Model 1 Architecture", last access on Feb 2006; www.oracle.com/webapps/onlinehelp/jdeveloper/. [4] The Java TM Tutorials; JDBC Architecture ; Feb 2008; http://72.5.124.55/docs/books/tutorial/jdbc/overview/architec ture.html (last access: Oct 2008). [5] http://www.nasdaq.com (last access: Oct 2008). [6] Sami Jaber; JavaServer Faces (JSF) versus WebForms ; Feb 2004; http://www.dotnetguru.org/articles/us/jsfvswebforms/jsfv swebforms.pdf (last access: Oct 2008). [7] Chris Schalk; Is JSF ready to take on ASP.NET? ; http://www.javalobby.org/articles/jsf-asp/#introduction (last access: Oct 2008). [8] ADO.NET, http://www.startvbdotnet.com/ado/default.aspx (last access: Oct 2008). [9] Martin Brown; IIS vs. Apache, Looking Beyond the Rhetoric, January 2008; http://www.serverwatch.com/tutorials/article.php/3074841 (last access: Oct 2008). [10] Sushmita Kumari; How to use Login Control in Visual Studio 2005 ; January 2006; http://www.dotnetheaven.com/uploadfile/sushmita_kumari/ Logincontrol102222006001105AM/Logincontrol1.aspx (last access: Oct 2008).

[11] Michele Leroux Bustamante; ASP.NET Technical Articles; Securing ASP.NET Applications - With Less Code ; October 2003; http://msdn.microsoft.com/enus/library/aa479008.aspx (last access: Oct 2008). [12] Routers, Popularity of.net is Grinding Java's Market Share, http://www.reuters.com/article/pressrelease/idus57445+28- Nov-2007+PRN20071128. [13] Sun Developer Network, JavaServer Faces Technology Overview, http://java.sun.com/javaee/javaserverfaces/overview.html. [14] Ted Schadler with Charles Rutstein, Robert Whiteley, Natalie Lambert; Report Java Or Windows? ; July 24, 200; http://www.forrester.com/rb/search/results.jsp?sorttype=dat e&nb=1&dag=10000&n=224+133001+140942. [15] Nicholas Wilkoff; The State Of Technology Adoption ; May 5, 2004; http://download.microsoft.com/download/c/7/5/c75837dc- 90bb-44d8-ae70- db7bcc5980b9/thestateoftechnologyadoption.pdf (last access: Oct 2008). [16] Mark Driver; Java and.net Will Vie for E-Business Development Efforts ; Gartner 28 April 2003; Available for purchase http://www.gartner.com/displaydocument?doc_cd=114609. [17] Andrew Donoghue; ZDNet UK; Betfair claims J2EE a better bet than.net ; 10 September 2004; http://www.zdnet.com.au/news/software/soa/betfair-claims- J2EE-a-better-bet-than- NET/0,130061733,139158899,00.htm (last access: Oct 2008). [18] Case Study, Random House, CodeNotes Site Ported from JSP to ASP.NET Quickly, Easily with Java Language Conversion Assistant ; July 14, 2003; http://www.microsoft.com/casestudies/casestudy.aspx?casest udyid=52003. [19] ebay ; http://www-07.ibm.com/hk/ebusiness/case_studies/webportal/ebay.html (last access: Oct 2008). [20] ebay enables on demand exchange of goods with resilient IBM technology ; e-business on demand; 2003; ftp://ftp.software.ibm.com/software/solutions/pdfs/ebay.pdf [21] Brian G. Lyons; The Platform Wars:.NET vs. J2EE ; November 4, 2004; http://www.mcaa.gov.mn/documents/theplatformwarsx.pdf (last access: Oct 2008). [22] Chad Vawter and Ed Roman, June 2001, J2EE vs. Microsoft.NET, A comparison of building XML-based web services ; http://www.theserverside.com/tt/articles/article.tss?l=j2eevs-dotnet [23] Sun MicroSystem, Designing Enterprise Applications with the J2EETM Platform, February, 2002; http://java.sun.com/blueprints/guidelines/designing_enterpris e_applications_2e/dea2etoc.html.