From: http://blog.csdn.net/rosen/archive/2004/06/05/9878.aspx
Original Author: Rosen Jiang and Source:Http://blog.csdn.net/rosen
Preface
I have read several articles about "returning to C/S". As a programmer who has been developing B/S for many years, I am deeply encouraged! Once, I was a loyal supporter of the B/S structure and fell into a technical Quagmire for the so-called "Zero deployment. Just as B/S worried, Ria came into my sight... ...
What is Ria?
Internet has increasingly become the default platform for application development. Users are increasingly demanding on application complexity, but today's Web applications cannot keep up with the pace of completing complex applications. The user experience is not satisfactory when interacting with today's moderately complex web applications. The Web model is a page-based model that lacks the client intelligence mechanism. Moreover, it is almost impossible to complete complex user interaction (such as user interaction between traditional C/S applications and desktop applications ). This technology makes Web applications difficult to use and has high support costs, and cannot play a significant role in many aspects.
To improve user experience, a new type of Internet application is emerging. That is, rich Internet applications (RIA ). These applications combine the advantages of fast response and strong interactivity of desktop applications with the wide spread of web applications and the characteristics of easy dissemination. Ria simplifies and improves the user interaction of Web applications. In this way, user-developed applications can provide a richer, more interactive, and Responsive user experience.
Host Mode → C/S Mode → B/S mode → Ria Mode
Our industry has undergone several important changes in system architecture. In this process, the client's performance functions have fallen. This section describes the changes in application experience brought about by the computing functions of each stage, starting from the mainframe to the emergence of RIA.
As organizations realize that the RIA model can generate significant commercial profits, increase productivity, and reduce costs, this model is becoming increasingly violent. These applications combine the advantages of fast response and strong interactivity of desktop applications with the wide spread of web applications and the characteristics of easy dissemination. The next step in the development of system architecture is Ria, which maximizes the extensiveness and richness.
On the shortcomings of traditional B/S
Process complexity
Process complexity is caused by the need to express a multi-step or multi-option task or interaction. In HTML, a multi-step task can be expressed on a single page. However, due to the limited interaction of HTML, a long page may be generated, making the user confused and clumsy and difficult to use. To avoid this unbearable user experience, you need to differentiate the tasks in what appears to be "natural" into multiple steps, or even multiple webpages. This kind of Webpage-based user interface usually needs to flip the webpage repeatedly to solve the implicated changes in the sequential steps. The result is a slow, unnatural, chaotic, and annoying user experience.
Configuration complexity
Many Web applications allow users to configure their desired custom products, such as leather bags, computers, and even automobiles. However, configuring a product is a very difficult process, because the application must be able to express related complexity when displaying all valid product quota groups to users, especially when users can customize a product from dozens, hundreds, or thousands of options. Expressing these complexities includes identifying required items, valid and invalid combinations, elements that cause problems, and appropriate solutions; provide fee information and total fee for each individual's choice (if changed). The most important thing is to allow the user to view the final result. These are quite difficult to present in traditional Web applications.
Complexity
Today, most of the search tools on the website are text, with some icing on the cake in. When a user enters his or her digital camera standards, it may be the price, in pixels, etc. The website then replies to the number of pages to conform to the standards, most of which are explanatory text. On the contrary, another method is to use visualization to simplify the search space (that is, to provide immediate and dynamic visual feedback ). On a site where cameras are visually selected, the search process may be as follows: A website starts with a single screen containing images of all camera types. When you select a filtering criterion by using a check box, cursor, or data input field, all non-conforming camera images will be deleted, and only the remaining compliant cameras will be displayed on the screen. Therefore, when you focus on a qualified number of cameras, you can experience a completely different experience and experience more similar to shopping experience in real life.
Feedback complexity
Highly Interactive applications such as games can complicate feedback, that is, the feedback loop between user actions and rapidly moving or changing screen elements. Traditional HTML pages have always been unable to express such complexity. What it needs is a highly interactive and locally intelligent client application that can be used without refreshing the entire page or interfering with communications with the server, respond to user input and change their status or interface. Abandoning the client that relies on the server today will make the user experience more attractive and solve the problem of feedback complexity. Web applications must have the ability to express complexity to allow users to view complex data, configure multi-Choice products, search for large datasets, and allow interaction and exchange between users and data.
Real Ria
To solve today's problems, the ideal web application should be able:
1. Use ubiquitous clients
2. Operate the Internet on multiple hardware platforms without any change
3. Low-or high-bandwidth connections can be executed without any hindrance
4. Restore the processing capability to the customer (instead of providing the capability)
5. Provide attractive and highly interactive user interfaces
6. presentation process, data configuration, scale, and feedback complexity
7. seamless use of sound, video, image, and text
8. allow users to work online and offline to support mobile workflows.
9. Allow the customer to determine the content and data to be accessed at their own discretion (asynchronous Content Retrieval)
10. Access Multiple middle-layer services (. NET or Java) and backend Data Storage
11. Adopting emerging standards such as XML and soap to provide dynamic and efficient front-end applications for networks dominated by evolving web services
12. Integration with legacy applications and systems
13. Adding new functions in existing web applications and environments to make full use of existing network application Investment
Structure
Ria itself has the ability to provide such Web application solutions. For example, Ria integrates the best user interface functionality of desktop computer software applications with the advantages of Web applications, low-cost deployment, and interactive multimedia communication, finally, we have achieved an application that provides a more intuitive, responsive, and effective user experience. Its desktop computer strengths include providing interactive user interfaces in terms of validation and format orchestration; and providing quick interface response time under the refreshing page; provides common user interface features such as drag-and-drop and online and offline operations. The strengths of Web networks include immediate deployment, cross-platform availability, gradual download to retrieve content and data, structured web pages, and full use of widely adopted Internet standards. The strengths of communication include two-way interaction sound and images.
The role of the client in RIA is not only to display pages, it can perform asynchronous computing, delivery and retrieval of data with user requests behind the scenes, re-draw a part of the screen, and closely integrate sound and image usage, all of this can be done without relying on the server or backend connected by the client.
Ria provides a powerful technical platform to restore client capabilities to almost the same level as that in desktop computer software applications or traditional C/S systems. It is suitable for the traditional N-layer development process, and can also be integrated with the legacy environment to extend existing applications without modification. It can also be used as an interactive presentation layer for basic network services, allowing users to work online and offline. Ria is capable of solving various complexities, developing complex applications and reducing development costs. In many cases, this type of application can be formed mainly thanks to Ria.
Ria solution-flash-based flex
Introduction to flex
Macromedia is recognized as a leader in the emerging Ria market. Today, 98% of browsers use Macromedia Flash client software, so almost everyone can use flash-based Ria. Macromedia Flex is a new server product of Macromedia. It enables enterprise application developers to fully access the functions of RIA. Flex has a standard-based architecture that complements the tools, methods, and design patterns of current enterprise developers.
The main difference between flex applications and traditional HTML applications is that flex application processing is most suitable for running on the client, such as field verification, data format, classification, filtering, tooltip, Merging video, behavior, and effect. Flex enables developers to better deliver applications that allow users to quickly respond, smoothly transition between different States and displays, and provide continuous workflows without interruption.
Flex Application Framework
As shown in, the flex application framework consists of mxml, actionscript 2.0, and flex class libraries. Developers use mxml and ActionScript 2.0 to write flex applications. Use mxml to define the user interface elements of the application, and use ActionScript 2.0 to define the customer logic and program control. The flex class library includes flex components, managers, and behaviors. With the development model based on flex components, developers can add pre-built components to programs, create new components, or add pre-built components to composite components.
Here we will focus on mxml. Like HTML, It is a markup language that describes user interfaces that reflect content and functions. Unlike HTML, mxml can provide declarative abstraction for the presentation layer logic to bind with user interfaces and server data. Mxml can completely separate the representation from the business logic to maximize developers' productivity and reuse of applications.
Limitations of flex
Currently, Macromedia has released the flex 1.0 Updater, but the IDE code "brady" has not yet been officially launched. Beta 3 testing is still underway. Aside from IDE, I believe that flex is not yet mature and is not conducive to use in actual projects.
For example, zipcodevalidator In Flex only provides zip code rules in the United States and Canada. It cannot be customized without any other options. It seems that only validator can be defined by yourself. But what is the difference between this and writing regular expressions in JS (the amount of code is similar to that in JS )? The user needs zipcodevalidator, which is international, to improve work efficiency.
Summary in one sentence
The current flex version is 1.0, which is not perfect in many places, so you have to customize it to fulfill specific requirements. We are looking forward to the release of Brady and flex later versions!
Ria solution-js-based bindows
Bindows Introduction
"Bindows has played JavaScript to the ninth layer !" -- The netizen commented on bindows in this way.
Running bindows
Indeed, Erik and other compiling frameworks have brought JavaScript OOP and IE6-based DHTML to the extreme! When bindows 0.93 was released, it has fully developed the built-in functions of IE, including filter, XMLHTTP, Web Service, and VML. Javascript is used to display and process the client interface, and XMLHTTP is used to transmit information between the client and the server. The expressiveness of JavaScript on the client is unquestionable. Let's look at the capabilities presented by www.bindows.net. using JavaScript, We can almost achieve most of what Windows applications can do, XMLHTTP has always been used to implement "refreshing" Web pages. It works with JavaScript to transmit data from servers and clients.
Bindows Deficiency
Erik prefers the method of loading all at a time to implement the script library. After using bindows, it will find that it takes a long wait process during the loading period of the window, even the browser process will produce no response. According to v0.93, the script file size is more than 600 KB. In a common web application, we will not use all bindows functions in more cases, this bindows root does not follow the "how much to use" principle. In addition, excessive JavaScript code will suddenly increase the CPU usage and cause potential problems.
A large amount of internal use of IE6 technology, without considering non-Microsoft platform browsers, limits the popularity of bindows. VML technology is widely used in charts. In ie5 and ie5.5, The VML engine is not so mature, and the display is not smooth enough in many places, bandwidth and hardware restrictions will be imposed, and over-beautiful graphics will eventually cause user crashes. "In terms of graphics, I used VML. I was too paranoid at the beginning. If SVG is used for implementation, it may be much better. That is, during that time, I spent a lot of time on web development." -- Some netizens say this.
Summary in one sentence
From a technical point of view, you can learn a lot from bindows, but it seems that its academic value is greater than its commercial value.
Postscript
It's time to use RIA to transform the existing B/S model. First of all, we are constrained by the imperfection of the network and hardware environments. I think no user is willing to spend a lot of time waiting for the "fancy" page to be seen, don't want to wait for something to overload your machine, but it's just a good experience? The market decides everything, not any new technology! Second, the current Ria solution is not mature, and I am optimistic about flex. Unfortunately, it takes a long time to wait for a result. Of course, there are still many Ria solutions. I feel that Ms's smart client + Web Service is not too small.