VC Development Windows Client software Tour-Preface

Source: Internet
Author: User

I have been working for several years since I dragged my luggage into Beijing for the first time. These years have been chasing their dreams, ran over three cities, changed three jobs, met a lot of friends in the industry. When chatting with friends, we find that many people have stopped doing the client software. Some turn to do management, some turn to do iOS, some turn to do Android, some turn to do investment, "adhere to" the people really not many. Once a friend joked that we are all holding Microsoft's thigh, if Microsoft fell, we were unemployed. When we say this, we tend to have a playful attitude. With the advent of mobile internet, the decline of PC is inevitable. The corresponding PC client is declining, the number of practitioners is reduced, now it is very difficult to recruit a qualified Windows programmer. Perhaps out of a memory, I think of writing this series of blogs and talking about the point-and-point technology in Windows Client software development. So that you can clearly understand the birth of a software journey.

The birth of a general software after a long process of preparation, such as project, research, interactive design, UI design. For the purposes of introducing technologies related to Windows client, all previous steps in development will be preceded by a stroke. The technical details used by each module are not described in detail, as this series of blog posts focuses on the implementation of all the "use" of the module technology. Also, for those of you who want to know about Windows development software, the main needles in this series will not use complex techniques such as boost. But in order not to lose the fun, I will introduce hook technology, and use hook technology to achieve some "magic" function.

Here are the module outlines and related technologies that I'll cover:

  1. Interface. One important reason why windows can occupy most of the PC-side system is that it has good interface interaction. So the Windows client program, a very important factor is the interface. I've been through a lot of projects where interface-related refactoring and development are a big part of the story. Often a product to do the last iteration, is also the interface change requirements--say goodbye. So this piece of technology is very important. At present this piece of technology is divided into the following types:
    • The window control type. For example, we are familiar with MFC and WTL, as well as on these based on the Kingsoft Shell UI engine encapsulation.
    • No window control type. such as DUI and htmlayout, and some interface engines that are encapsulated in the browser kernel.
  2. Internet. In an age when the internet is so popular, if your software does not have networking capabilities, it might actually be out. In general, our software uses the following network behavior:
    • Upload. In addition to some unscrupulous companies will secretly upload some user information, one of the use of upload function scenario is: Upload Crash Analysis log.
    • Download. Downloading is the necessary technology to enable the software to implement the update function. If a software loses its own update, I generally think it is "zombie". Because it has lost the opportunity of "rebirth".
    • Inquire. For some secret algorithms, we do not fit in the local nature, because the crack is easy for the master. Then we provide the server with "material" through the network, so that the server that holds the secret algorithm tells us the results of the calculation.
  3. Data. There are many forms of data. If we are involved in communication, there will be data participation. For example, to communicate with the server, we may need to encrypt or hash the data. We will then describe the use of the following algorithms:
    • MD5. It is a hash algorithm, which has been thought to be a very high-uniqueness algorithm. It is generally used to do data validation. A few years ago, a Chinese university professor found that MD5 can collide, but MD5 's position in the computer world is still impossible to shake. It can be said that in our daily use of the software, almost all exist MD5 algorithm. In particular, some URL requests, some of which are the result of MD5 calculations after some fields have been organized. This should be commonplace for those who have done the deal.
    • Aes. It is a cryptographic algorithm that is used to replace the DES algorithm.
    • Des. It is also a cryptographic algorithm, but it is out, try to use AES.
    What is the format of the data, is the CS end mutually agreed. I will describe the use of the following two formats:
    • Xml.
    • Json.
    If the data is too large, it may need to be compressed or decompressed. I'll cover the use of the two libraries in this piece:
    • Zip
    • 7z
  4. Log dot. The role of log RBI is not negligible. For the development of students, the log can identify the context of the program execution, so as to facilitate our positioning problems. For product interaction design students, DOT can help to count how many times a button is pressed, what order is pressed, so that we can design a more reasonable interaction based on these data. Sometimes, when we install a piece of software, we often have a tick--to help us improve. If you tick, the app will upload these log-in information. In general, each log will carry the user logo information. For software without an account system, the user logo is generally the result of a combination of hardware information (hard drive serial number, etc.).
  5. Collapse. In addition to the famous Hello World, no famous program can guarantee that it will not crash. For those who have broken the computer or installed a lot of students to kill soft, should have seen what the blue screen looks like-the operating system crashed. Even the operating system crashes, not to mention the programs we write? So the crash isn't scary, and the scary thing is we can't collect crash logs and not analyze crash logs. This piece of technology, I will explain two modules:
    • Crash log generation.
    • Crash log analysis.
  6. Database. The task of a software, may try to leave something in the system local-Lao Tzu to this tour. How is the software engraved, and where is it carved? Simple, write a few files on the line. The complex point is going to use the database.
After the basic modules are introduced, we will insert some interesting techniques:
    1. Inter-process communication. Sometimes we need to invoke other processes to complete the task. One possibility is that the software is written by ourselves, and we can write inter-process communication code inside the software code. The other is that the software has only a fixed output and we need to take over its output to complete one-way communication.
    2. Cloud instructions. This is a very interesting topic. With the instruction configurable, we can control the behavior of the client as easily as the Web page--in general, if we want to change the client logic we may need to modify the code and release the new version. With cloud instructions, we can easily change the behavior of the client simply by changing the server configuration without having to go through a lengthy release and upgrade process.
    3. Modifies the behavior of another process (intrusion). Intrusion may have been attempted by every technology geek. In order to make this journey of development interesting, I will be at the end of a good "invasion" to complete some fun features.
Hopefully, with this journey, you'll have an understanding of Windows Client development technologies and modules. Use the modules in this series to quickly build your own apps.

VC Development Windows Client software Tour-Preface

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.