Home > Software engineering >  Windows client development profile (2)
Windows client development profile (2)

Time:10-31

Windows client development profile (2)

A typical Windows client program to which a few parts are there? Below I will in a relatively popular in the domestic Internet client program you gradually expand to the basic framework of analysis, due to problems involving intellectual property, please don't ask me what is the product, of course, if you can guess, I can't the ^_^,

Some video audio Internet PC client product basic architecture


As above is just a rough idea of layered architecture diagram, no more detailed division, but there are a few places is the need to pay special attention to, such as the top of that a few parts, audio and video codec engine, UI engine, its browser kernel, the kernel communication module, the log system,

For audio and video codec engine and the kernel communication module is unique for video client and P2P communication, does not have versatility, so I don't do here special introduction,

First of all, we are going to start to introduce the UI engine

So-called UI engine is called interface library, for client products, UI development account for a large space, the stand or fall of UI will direct the most intuitive impression user experience, so a good interface library is a top priority,

So what kind a good UI engine? From a functional perspective, first of all, the configuration is convenient, can quickly modify interface, or complete the reconstruction of the interface; Next to have feature-rich control that can meet the demand of all kinds of UI, from a technical perspective, the interface library better portability, such as drawing and show layer separation, so that when I was in a cross-platform code, only need to modify the drawing layer and upper client UI code don't need to do too much change, secondly scalability, scalability to control under the condition of not enough rich interface library itself can rapidly develop new control, there will have a lot to do with object-oriented technology, the third, UI interface library should have good extensibility, such as in the case of insufficient existing controls, can directly with the platform native controls, so in the case of lack of interface control elements can be quickly using this platform native controls to make up for,

Now the interface library development has experienced four stages roughly

A, the earliest using Windows API interface development stage

This interface is relatively simple, image and with less and software structure are also not particularly complex, therefore this stage interface for independence from the engine, even basic communication layer and data layer and is together,

At this stage, if you want to create a window, you need to call a lot of Windows API, need to manually create a message loop, such as CreateWindow need to invoke the API message processing accordingly,

Two, with MFC, WTL is on behalf of the second generation of the interface library

This stage due to the development of object-oriented technology (mainly c + +), such as c + + MFC appeared on the Windows platform encapsulated interface library, its main characteristic is to use the c + + polymorphism, encapsulation, such as c + + features, such as encapsulate the window, the window as an object, the handling of the window as imposed on the window class object behavior, despite the introduction of the concept of object-oriented, but in essence, this is a kind of method, together with code interface UI developers still have higher requirements,

At this stage, if you want to create a window, relative to a little less workload, derived two classes, message loop is encapsulated inside, covering their virtual function, inside it is ok to do some initialization,

Three, the third generation represented by QT interface library

QT USES a QML using the descriptive scripting language configuration interface, this kind of development method on the efficiency of the interface and in front of two generations products have greatly improved, the learning cost is much lower,

At this stage, if you want to create a window, need only in QML to visual editor to create change, QT will compile corresponding QML files to your application, to some extent, you don't even need to know c + + also can complete the basic development of interface,

Four, the fourth generation is characterized by the XML configuration interface library

On Windows platforms, a WPF and Silverlight such technology, also has the XUL (FireFox UI engine) used by the interface library, now many domestic interface library also be classified as this type, such as the recently popular DUILIB, their main features are: separating the interface development and logic control, use XML to configure the interface, the XML of a node is a general control, each node on the properties control controls various characteristics, such as location, image, etc., and use another language as the logic control of the interface element processing, such as XUL with scripting language JavaScript, WPF and Silverlight in c #, DUILIB directly in the c + +,

This stage, if you want to configure a window may only need in XML (WPF and Silverlight XAML) declare an element, such as



Similar to the above such a simple description, completes a is located in the left upper corner of the screen (0, 0) starting position, width is 400, the height is 300, the background image is bg. The PNG window configuration, pay attention to here is to configure, instead of creating, because need to create the UI are not complete engine after parsing XML,



Actually interface library development have great relationship with computing hardware and software technology development, with the improvement of software reusability, reusability of UI elements are also constantly improve, with the development of hardware technology, faster CPU, larger memory, make us look before do some low efficiency way of dealing with the interface also has a relatively good performance, but also has a better flexibility,



Now Internet client usually has its own interface library, is also likely to adopt some open source interface library changes themselves, according to my knowledge the interface library, QQ is developed by PPS with DUILIB, recently turned over a new WeChat PC client, it also have the authority to DUILIB file, because the interface library is the development of client development in relatively have the technology content, thus the difficulty is relatively larger, can pop open the fourth generation of c + + interface library actually not much, if you have interest to study,



Second, here again in the future I want to introduce the basis for development of Windows interface, this thing is GDI, will make a brief introduction of GDI common function and use of the method, as well as the common pit,

Thanks for watching!

CodePudding user response:

MFC to do more, watching the qt recently, really like you said, qt ideas than MFC lead generation, simple interface configuration up almost don't have to know c + +, MFC should be historical baggage too much, the elephant not fly,
2. Duilib domestic thunderbolt blit do seem to be very good, and I saw on CSDN dazzle colour also can also, but their problems are too few documents, really do large software, may/might not have the MFC to develop high efficiency, MFC document, after all, very detailed,
3. The Suggestions into blogs, post soon if I can't find it
4. Looking forward to the third article

CodePudding user response:

Thunder BOLT feeling also not good, do not open source, no document (Tony is equal to no document), to feel the effect of is not how, easy-to-use audio software UI is secondary, don't the whole pile, advertising, search resources, point a button link line card for a few seconds,

CodePudding user response:

Now don't have a lot of Windows client development, ha ha
http://www.cppblog.com/weiym/archive/2014/07/26/207819.html

CodePudding user response:

Why not continue to write?

CodePudding user response:

reference 1st floor sunnyloves response:
1. MFC, do more recently in qt, do as you say, qt ideas than MFC lead generation, simple interface configuration up almost don't have to know c + +, MFC should be historical baggage too much, the elephant not fly,
2. Duilib domestic thunderbolt blit do seem to be very good, and I saw on CSDN dazzle colour also can also, but their problems are too few documents, really do large software, may/might not have the MFC to develop high efficiency, MFC document, after all, very detailed,
3. The Suggestions into blogs, post soon if I can't find it
4. Looking forward to the third article

QT in addition to the help document, could you recommend a good learning materials!

CodePudding user response:

reference 5 floor lx624909677 reply:
Quote: refer to 1st floor sunnyloves response:

MFC to do more, watching the qt recently, really like you said, qt ideas than MFC lead generation, simple interface configuration up almost don't have to know c + +, MFC should be historical baggage too much, the elephant not fly,
2. Duilib domestic thunderbolt blit do seem to be very good, and I saw on CSDN dazzle colour also can also, but their problems are too few documents, really do large software, may/might not have the MFC to develop high efficiency, MFC document, after all, very detailed,
3. The Suggestions into blogs, post soon if I can't find it
4. Looking forward to the third article

QT in addition to the help document, could you recommend a good learning materials!
ashamed I also is to learn to help document the

CodePudding user response:

Want to use technology is introduced in different areas will be better

CodePudding user response:

Thanks for sharing ~ ~

CodePudding user response:

Yes, a top.. A WINDOWS programmer

CodePudding user response:

nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related