Back to the future of using the smart client
Release Date: 8/11/2004
| Update Date: 8/11/2004
Billy Hollis
Elysian Consulting
Summary: Although the web application has attracted countless attention in the past few years, the improvement of clients means that they have reached the time development. In the new column of the "Real World .Net" in the "Reality World" director of the Microsoft Region, Billy Hollis illustrates the smart client and how today uses them to generate applications.
It is dominated by a large-scale computer; they are called large machines. If your hair is still like me, you may not remember the world. Let me talk about it. In that world, the huge large machine system works all the processing. It brings together a page information and sends this page to a device called a terminal. The most common type of terminal is called 3270.
The terminal is a quite stupid device. Their processing capabilities are not worth mentioning. The user can do for the terminal is to populate the data field and browse on the screen.
After the user enters a page of data, he / she presses this page into the mainframe. The mainframe accepts this page information and processes it, and then prepares a new page.
Then there appeared a PC and connected to a network. Finally, there is a guy who said: "Hey, we can do better than the mainframe. We can use the PC's processing power, users more intelligent and remember many users need How to work. This will help users handle tasks and more efficient.
In this way, the new type of system is born. The best system in these systems has made a very good job that is allocated between the user's PC and large central computers (named servers reamerled again). These client-server systems make PCs and large central systems each other when processing tasks. The client-server system replaces a lot of large machines, and people prefer this system. User efficiency is high and a happy mood.
Then there has been an Internet. Initially, the Internet is only used to browse static, containing hyperlinks. But later, some very smart young people say, "Hey, see what we can do! We can make the application run on the Internet. We will have a large central web server that can make all handling tasks. This server will page Send to the user, then view this page in your browser and you can use your browser to browse and enter some data from you in this page. After that, the user presses the button to send this page to the large system, and this The system will handle this information and send back to the new page. This is great!
The browser itself does not have a built-in too much intelligence. It should be a "thin client", which means that the PC is only responsible for running this browser. In this way, the PC having a stronger process over 20 years ago degraded to a device similar to 3270 terminals.
why is it like this? Why do you have a big jump? As many "why this is like this" type, the answer is "money". Through the browser-based system, the first allowed users to access our systems around the world, which is a big leap. Enables new users to access our system for basic zero.
The Selection of "Fat Client" or "Smart Client" requires us to install certain special software on the user system. This way is very simple in the Dos era. We imitate this way and it plays a role. However, COM appeared later, it actually occurs simultaneously with the browser, and we learned the term "DLL Hell" (DLL Hell). Therefore, we abandon the efforts to make the software run on the user's computer, but only use the browser because we can't do anything else. No matter what to say, it is better than not. In this way, a low-level choice we can buy will overcome a high-level choice we can't afford.
However, let us change the foundation hypothesis. Suppose it is cheaper to deploy software to the user system - maybe very close to the use of the browser's zero. So what happens? Billy's software development first law points out: the number of users exceeds the number of programmators and technical support representatives. The user is the reason for our system. If the user knows that they can get intelligence and help to better complete the task's application software interface, then how long can users can do if users do? How long has they expressed satisfaction with the page generated by the protocol, and this protocol is not intended to be used for application interface but is used to contain hyperlinks? I believe that the answer is "How long does it take for it."
Consider the possible situation. If a system has a thousand operator, the smart client software will increase their efficiency by 5%, then the cost saves is very considerable. Assuming that an employee is $ 50,000, then a thousand operators increase the five-percent work efficiency is equivalent to the cost of fifty full-time staff, namely $ 2,500,000. And this hypothesis has not considered lower training costs, lower error rates, bringing less frustration and pressure, and other benefits that smart client software may bring. (In addition, the five percent of the above is also very conservative. I have seen the difference in the task, and the production efficiency can be increased by 20%.)
your choice
If this analysis is correct, how will this analysis affect decision makers in software development and information technology? I think this analysis will lead to interesting options: For use of smart client systems, you may passively accept or actively adopt. You will pay a price for the selected policy or receive a return.
On the one hand, you can continue to work in the manner of the 1990s and continue to reluctantly rely on browser-based software. The strategy may not have trouble. This policy will bring you trouble based on your industry and your organization in the new technology. However, in technology, there can be competitive advantages, such strategies will bring a lot of risks affecting career development. Perhaps a certain day, someone who truly controls the technology you are organized will come to you and say: "Hey, this browser-based thing is garbage. Users hate it because it can't get up. I saw Other systems have a smart user interface that can make users better and quickly saved a lot of money. I want to try this system. I provide me - we need it yesterday. " Or worse, they may start to talk, "We have decided to change some changes to your department ..."
If this sound is not so attractive, you can use the "active" strategy. First, consider writing a new application to 500 users should have an old-fashioned browser interface, or there should be a new, attractive eye, new intelligent user interface. You will become such a hero: The created software increases hundreds or thousands of users' production efficiency, perhaps millions of dollars. Your user will say: "Ah! I never thought that the Internet app can be better! You are a genius!"
Back to top
getting Started
If you like the "genius" choice, you need to learn more about the development of intelligent clients. To make the intelligent client architecture work, it takes four technologies:
• Form package for creating smart client software. • Data transfer technology, is used to transfer data between smart clients and central servers via a local network or Internet. • Method for deploying smart client software to client computer, in many cases. • Prevent system from being affected by malicious access.
Now, Microsoft® .NET Framework is a clear choice for a platform that implements all of these features. This is not just a selection of platforms for distributed smart client systems, and it is obviously a big step more than Java's choices. Let's take a look at the features of the .NET in each area, see why this is said. Back to top
Form on the client
The .NET Framework includes one of the most advanced form engines, called the Microsoft® Windows® form. It is fully object-to-object, with a variety of visual controls (from Microsoft and third parties), and the Microsoft® Visual Studio development environment includes a great visual designer that quickly creates a Windows Form. interface.
Using the event drive mode of the Window Form, coupled with the function of using the large amount of status information required to store the local storage, the user interface response will be faster. The data input task that burys the head can be done using an interface specifically designed for this purpose. Complex data validation helps users get the correct data for the first time without having to load the page again to view the data correct. (Yes, yes, I know. The browser can also complete some of these tasks. But it needs to make so many programming to make it right, it is not worth spend so much energy.)
The Windows Forms interface can include tutorial windows, tooltips, translucent help forms, make behaviors to adapt to user dynamic controls, and so on. Typically, developing them faster than developing equivalent web pages.
Microsoft has a large investment in this technical field. The next generation of UI technology has been announced. The code name of the project is "avalon" and it is part of the next version of the currently developed Microsoft® Windows® (Code Name "longhorn"). Avalon adds more features User interface response faster, including almost impossible in your browser, some new modes for user interaction.
To use these technologies, developers will need to understand more user interface design principles. If they only have a browser-based programming, they may not be aware that many things have to be understood about the UI design. They can't make the system include a faster intelligence interface until they understand how to write a faster intelligence interface.
There is a restriction factor that needs to be explained. The Windows Form is part of the .NET Framework, thus only available on the Windows platform. However, if your organization has standardized on the Microsoft® Windows Server SystemTM of the Client Workstation (as many organizations), then you don't have to worry about the limit factor.
Application requires data
A large number of businesses and business applications operate on data, and these data are typically stored in a central server. If you want to make the smart client application, you must send data from the server to the client in practice, allowing the client to change the data and return 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 the container to handle the data without maintaining the connection with the server, no need to make changes and add; then send the container back to the server.
There are two main technologies that can be used to perform actual data transmission between client computers and server computers. One is a web service. The advantages of Web services include: facilitating implementation and configuration, and compatibility with multiple types of servers. Web services can even communicate with non-Microsoft servers, but must do more work to create corresponding data containers.
If all systems involved in the application can run Microsoft .NET, another technique called ".NET remote processing" can be used. This technology has some performance advantages and security advantages, but it is more difficult to configure. Large-scale smart client systems for internal users are usually dependent on remote processing, while users located outside the organization are more likely to use web services. In either case, it is likely that smart client application processing data is more intelligent than a browser-based system. For example, if the smart client lost the link to the server, it maintains the local copy of the data until the server is available again. Intelligent client applications can dynamically adjust their behavior to adapt to online and offline conditions.
Low-cost deployment
Remember, we are discussing if the effect of discussing the deployment of the smart client system is as cheap or close to the cost as the browser-based system, starting this discussion. Now, it is difficult to obtain a cheaper deployment cost than a browser-based application. This application is basically zero for each user. However, you can reduce your smart client deployment costs to sufficiently low to make it competitive. Keep in mind that through production efficiency, the smart client may save a lot of money; so that it is economical to assume some other deployment costs.
Key technologies that allow low-cost deployment are the "copy and run" feature of .NET Framework. No need to perform complex registration of system components like in COM. Simply copy the component to the disk, and Framework will make the rest of the work. The incompatibility problem of DLL is solved by parallel execution of multiple DLL versions.
Finite formatic automatic Internet deployment is included in the .NET Framework, and a more advanced version of a code name "Clickonce" is specified as the next version. At the same time, I found that you can easily create a custom deployment system and make it easy to use "copy and run" to simply and inexpensively generate self-updated applications.
The browser must be installed on the client system, the browser-based application can run; Similarly, .NET Framework must be installed on the client computer, based on the .NET's smart client to run. Currently, this means an additional responsibility because it is not automatically installed for the operating system (Windows XP, Windows 2000 and Windows 98 / Me) used by most client computers. However, installation .NET Framework is free for these systems. Over time, the system will update, we will see .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 ServerTM 2003.
Guaranteed all-round security
We learned how vicious in the Internet in the past few years, and we responded by building a more reliable security to the system. However, it is clear that the distributed intelligent client system requires new security features.
Fortunately, .NET Framework's design includes reliable security principles. In addition to eliminating vulnerabilities such as buffer overflow, there is a new form of security, called code access security. According to information about the code (for example, where the code comes from or who writes the code), it grants the secure privilege to the code segment. This security is based on normal user security, so that there is another protective layer.
I think that the correctly designed intelligent client system is more secure than a typical browser-based system, because the interface between the client system and the server system can better control the interface between the server system, and because the system's executable portion can only receive the location The privilege needed. However, of course, such advanced security means learning some new technologies and new concepts. Back to top
Your action plan
There is no need to enter this intelligent client world. Any time in the next two years - Of course, as long as your competitors do not enter this area. The user has not yet obtained the latest information. Although deployment is not high cost, you still need to install .NET Framework on the client computer.
But these are temporary situations. I firmly believe that smart client applications replace many browser-based applications in the past few years. I don't doubt it because five customers have decided to use, and they are shocked by the results.
This does not mean that the conversion does not bring any pain to them. It requires developers to learn new distributed architecture and new technologies. In many cases, they must better carry out object-oriented development and user interface design.
Those developers who spend more than five years can do not want to make changes based on browser deployment. They are accustomed to the leading developers as their era. However, all technologies will experience Ding Sheng, decline, and finally updated technology. Although we will continue to see a browser-based application will still use many years in some cases, but I believe that the browser-based development is now overded. It may be a period of time from the top to decline, but this direction is clear. Ready to meet the return of the smart client!
Back to top
Reference
VB.NET Deployment Handbook
Windows Forms Programming In C #
.NET in the real world
Billy Hollis and Rocky Lhotka wrote "VB.Net Programming with the public beta" is the first book about Visual Basic .NET, he often speakers at major industry conferences. In 2001, he was a member of Microsoft's MSDN region and is now a member of Microsoft's Ineta Liaison Office. He has its own .NET consulting business, specializing in the development of business software and intelligent clients. He also provides Visual Basic.Net training in the US.
© 2004 Microsoft Corporation All rights reserved. all rights reserved. Use the specification.
Back to top