Return to the future of Using Smart Clients

Source: Internet
Author: User
Document directory
  • Applications require data
  • Low-cost deployment
  • Ensures comprehensive security
Release date: 8/11/2004 | update date: 8/11/2004

Billy holis

Elysian Consulting

Summary: Although Web applications have attracted a lot of attention over the past few years, client improvements mean it is time to restudy client development. In the new ". net in the real world" column, written by the Microsoft Regional Director, Billy holis illustrates the Smart Clients and how to use them to generate applications today.

In the past, large computers were dominant; they were called mainframes. If your hair is not as white as mine, you may not remember the world. Let me talk about how it works. In that world, a huge mainframe system performs all the processing work. It collects a page of information and sends it to a device called a terminal. The most common terminal type is 3270.

Terminals are stupid devices. Their processing capabilities are not worth mentioning. What a user can do for a terminal is to fill in data fields and browse around the screen.

After the user enters a page of data, he/she presses a button on the terminal to send this page information back to the mainframe. The mainframe accepts and processes this page, and is ready to issue a new page.

Then there was a PC and connected to the network. Finally, a guy said, "Hey, we can do better than the mainframe. We can use the processing capability of PC to make the user interface more intelligent and remember a lot of information about how users need to work. This will help users process tasks and improve efficiency ".

In this way, new types of systems are born. The best systems in these systems do a very good job of allocating workloads between user PCs and large central computers (renamed as servers again. These client-server systems allow the PC and large central systems to do their best to handle tasks. Client-server systems have replaced many mainframes, which people prefer. Users are highly efficient and happy.

Then the Internet appears. Initially, the Internet is only used to browse static pages with hyperlinks. But later some very smart young people said, "Hi, let's see what we can do! We can make the application run on the Internet. We will have a large central web server that can process all tasks. The server sends the page to the user, and then the user will view this page in the browser, and can use the browser to browse this page and enter some data. Then, the user presses the next button to send this page information back to the large system, and this system will process this information and send it back to the new page. This is amazing "!

The browser itself does not have too many built-in intelligence. It should be a "thin client", which means that the PC is only responsible for running this browser. In this way, PCs with stronger processing capabilities than the mainframe two decades ago are downgraded to devices similar to 3270 terminals.

Why? Why is a big bounce? Just like many questions of the "Why?" type, the answer is "money ". This is the first time that browser-based systems allow users around the world to access our systems. The cost of enabling new users to access our system is basically zero.

The selection of "fat client" or "Smart Client" requires us to install some special software on the user system. In the DOS era, this method is very simple. We mimic this method and it plays a role. But then com appeared. It actually appeared almost simultaneously with the browser, and we learned the term "DLL hell" (DLL hell ). Therefore, we give up the effort to make the software run on the user's computer, instead of using the browser, because we cannot do anything else. In any case, it is better than nothing. In this way, a low-level choice that we can afford will defeat a high-level choice that we cannot afford.

However, let's change the basic assumptions. Assuming that deploying software to a user system is much cheaper-it may be very close to the zero cost of using a browser. So what will happen?

Billy's first law of Software Development states that the number of users exceeds the number represented by programmers and technical support. Users are the reason for the existence of our system. If users know that they can obtain an intelligent application software interface that helps them better complete tasks, how long do you think the user can endure for clumsy interfaces? How long have they been satisfied with pages generated using the protocol, which is not even intended for application interfaces but for pages containing hyperlinks? I believe the answer is "How long will it take ".

Consider the possible situation. If a system has one thousand operators and Smart Client software only needs to improve their efficiency by 5%, the cost savings will be considerable. Assuming that the cost of one employee is USD 50,000, increasing the efficiency of one thousand operators by 5% is equivalent to the cost of 50 full-time employees, namely USD 2,500,000. In addition, this assumption has not considered lower training costs, lower error rates, less user frustration and pressure, and other benefits that smart client software may bring. (In addition, the above 5% is still very conservative speculation. I have seen that production efficiency can be increased by 10 to 20% according to different tasks .)


Your choice

If this analysis is correct, how will this analysis affect decision makers in the software development and information technology fields? I think this analysis will lead to an interesting choice: You may passively accept or take the initiative to adopt a Smart Client System. You will pay for the selected policy or receive a return.

On the one hand, you can continue to work in 1990s and continue to rely heavily on browser-based software. Depending on the speed at which your industry and your organization are moving forward in terms of new technologies, this strategy may not cause you any trouble. However, in any rapidly developing industry where technology can bring about competitive advantages, such a strategy will bring great risks that affect career development. Maybe one day, someone who really controls the technology of your organization will come to you and say, "Hi, This browser-based stuff is rubbish. Users hate it because it makes them unable to get up quickly. Other systems I see have smart user interfaces that allow users to work better and faster and save a lot of money for their company. I want to try this system. Provide it to me-we needed it yesterday ". Or worse, they may start talking like this: "We have decided to make some changes to the management of your department ......"

If this does not sound so attractive, you can adopt an "active" strategy. First, we can consider whether a new application that needs to be compiled for 500 users should have an old browser interface or a brand new, eye-catching, and new intelligent user interface. You will become a hero: the software you create increases the productivity of hundreds or thousands of users, and may save millions of dollars. Your user will say, "Ah! I never expected that Internet applications would be so good! You are a genius "!

Back to Top


Getting started

If you like the "genius" option, you need to learn the details of Smart Client development. To make the Smart Client architecture work, four technologies are required:

Form software package, used to create the smart client software.

Data transmission technology is used to transmit data between a smart client and a central server over a local network or the Internet.

In many cases, you can deploy the Smart Client software on a client computer over the Internet.

Security Technology that prevents malicious access to the system.

Microsoft. NET Framework is now a clear choice for a platform that implements all of these features. This is not just a platform choice for Distributed smart client systems, but it is clearly a big step forward than the choice of Java. Let's take a look at the. NET functions in each of the above fields and see why.

Back to Top


Form on the client

. NET Framework includes one of the most advanced form engines available, known as Microsoft Windows Forms. It is fully object-oriented and has a variety of visual controls available for its use (from Microsoft and third parties), and the Microsoft Visual Studio development environment includes a great visual designer, you can quickly create windows forms.

The event-driven mode of the window form, coupled with the function of storing a large amount of State information locally, enables faster User Interface response. You can use a specially designed interface to complete data input tasks. Complex data verification helps you obtain the correct data for the first time without loading the page again to check whether the data is correct. (Yes, yes, I know. The browser can also complete some of these tasks. But it requires so much programming to make it correct, and it is not worth so much effort .)

The Windows form interface can include a tutorial window, A tooltip, a translucent help form, dynamic controls that adapt behavior to the user, and so on. Generally, developing them is faster than developing an equivalent web page.

Microsoft has invested heavily in this technology field. The next generation of UI technology has been announced. The code of this project is named "aveon" and is part of the next version of Microsoft Windows (the code name is "Longhorn") currently under development. More features are added to aveon to make the user interface respond faster, including some new modes that are almost impossible in the browser and used for user interaction.

To use these technologies, developers will need to learn more about the user interface design principles. If they have only performed browser-based programming, they may not realize that there is much more to understand about UI design. They cannot make the system include a smart interface that responds faster until they know how to write a smart interface that responds faster.

There is a limiting factor that needs to be explained. Windows Forms are part of the. NET Framework and are only available on Windows platforms. However, if your organization has been standardized on Microsoft Windows Server System on the client workstation (the same as many organizations), you don't have to worry about this restriction.

Applications require data

A large number of enterprises and commercial applications operate on data, which is usually stored on a central server. To make the Smart Client application feasible, you must actually send data from the server to the client so that the client can change the data and return the data.

Microsoft's latest data access technology, Microsoft ADO. net, is designed for this situation. Unlike the previous data access model, this technology is created for Distributed usage. XML-based data containers can be created and transferred to the client on the server. The client can use a container to process data without maintaining the connection with the server, without changing or adding the container. Then, the container is sent back to the server.

There are two main technologies that can be used for actual data transmission between the client computer and the server computer. One is Web Services. Web services have the following advantages: ease of implementation and configuration, and compatibility across multiple types of servers. Web services can even communicate with non-Microsoft servers, but you must do more to create corresponding data containers.

If all systems involved in an application can run Microsoft. NET, another technology called ". NET remote processing" can be used. This technology has some performance advantages and security advantages, but it is more difficult to configure. Large smart client systems for internal users usually rely on remote processing, while systems outside the Organization are more likely to use web services.

In any case, it is likely that smart client applications process data more intelligently than browser-based systems. For example, if a Smart Client loses its connection to the server, it can maintain a local copy of the data until the server is available again. Smart Client Applications can dynamically adjust their behavior to adapt to online and offline conditions.

Low-cost deployment

Remember, we started this discussion by discussing whether the effectiveness of deploying a Smart Client System is as cheap or similar to that of browser-based systems. Now, it is difficult to obtain a cheaper deployment cost than a browser-based application, which is basically zero for each user. However, the deployment cost of the Smart Client can be reduced to a low enough value to give it a competitive advantage. Remember, Smart Clients may save a lot of money by improving production efficiency. In this way, it is economical to take on some other deployment costs.

A key technology that allows low-cost deployment is the. NET Framework's "copy and run" function. You do not need to perform complex registration of system components as in COM. You only need to copy the components to the disk, and the framework performs the rest of the work. Parallel Execution of multiple DLL versions solves the problem of DLL incompatibility.

A limited form of Automatic Internet deployment is included in the. NET Framework, and a more advanced version with the code name "clickonce" is specified as the next version. At the same time, I found that I could easily create a custom deployment system and use "copy and run" to easily and cheaply generate self-update applications.

The browser must be installed on the client system and browser-based applications can run. Similarly, the. NET Framework must be installed on the client computer and the. Net-based Smart Client can run. Currently, this means additional responsibilities, because it is not automatically installed for the operating systems (Windows XP, Windows 2000, and Windows 98/ME) used by most client computers. However, installing. NET Framework is free of charge for these systems. Over time, the system will be updated, and we will see that. NET Framework is everywhere, because Microsoft intends to include it in future operating system products. In fact, they have begun to include it in Microsoft Windows Server 2003.

Ensures comprehensive security

We have learned over the past few years how vicious some people on the Internet are, and we respond by building more reliable security into the system. However, it is clear that the distributed Smart Client System requires new security features.

Fortunately, the. NET Framework Design includes reliable security principles. In addition to eliminating vulnerabilities such as buffer overflow, there is also a new form of security, called code access security. It grants security privileges to code segments based on information about the Code (for example, where the code comes from or who has compiled the Code. This security is based on common user security, and thus has another protection layer.

In my opinion, a correctly designed Smart Client System is safer than a typical browser-based system because it can better control the interfaces between the client system and the server system, and because the executable part of the system can only receive the required privileges. However, of course, designing such advanced security means learning new technologies and new concepts.

Back to Top


Your action plan

You don't have to rush into this smart client world. Any time in the next two years can be-of course, as long as your competitors do not enter this field. The user has not obtained the latest information. Despite the low cost of deployment, you still need to install. NET Framework on the client computer.

However, these are temporary situations. I firmly believe that smart client applications will replace many browser-based applications in the next few years. I don't doubt it because five customers have decided to use it, and they are shocked by the results.

This does not mean that conversion does not bring any pain to them. It requires developers to learn new distributed architectures and new technologies. In many cases, they must perform better object-oriented development and user interface design.

Developers who spend the last five years learning browser-based deployment may not want to change. They are used to being the leading developers of their time. However, all technologies will be replaced by newer technologies after the peak and recession periods. Although we will continue to see that browser-based applications will still be used for many years in some cases, I believe browser-based development has now passed its heyday. It may take some time from the peak to the decline, but this direction is clear. Prepare for the return of the Smart Client!

Back to Top


References

VB. NET deployment Handbook

Windows Forms programming in C #

In the real world. Net

Billy holisHe and rocky lhotka jointly wrote "VB. NET programming with the Public Beta", which is the first book about Visual Basic. net. He often gives speeches at major industry conferences. In 2001, he was the regional director of Microsoft's msdn and now a member of Microsoft's ineta Liaison Office. He has his own. Net consulting business and specializes in the development of commercial software and Smart Clients. He also provides Visual Basic. Net training throughout the United States.

2004 Microsoft Corporation is copyrighted. All rights reserved. Usage rules.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.