Devexpress library learning Summary (simple)

Source: Internet
Author: User

for devexpress library I always want to write something, however, I always feel that what I learned is not enough to write out some good things. So this month, I will keep learning and learning about this database, but I have not learned anything, I dare not speak lightly. However, for more than a month, I have read some of its Source Code , probably 1%-3% left and right ( poor understanding ) ; on the other hand, some of its frameworks have also made some things, so I am still used to writing something related to this.

This library is very bloated. On the one hand, it is a very old framework. . Net This is because . Net The development time is only year 56, and this database is . Net As a result, there are many old structures and functions. The first choice is class upgrade and extension. Xxclass And then appeared Xxclassex It is obviously an upgrade. And there will be another Xxclassex2 , Haha, secondary upgrade. There is a lot of such content in this library, especially in some basic framework libraries, mainly Devexpress. Data And Devexpress. utils Two libraries. The second is some logical structure adjustment, which is mainly manifested in the classCodeLocation. Because this is a commercial library, and it is not a unified whole, many features are sold independently, so there are some violations of the design pattern in the Code organization. For example, its Printingsystem Is an independent module. You can only purchase this module, instead of buying other modules, such Report Module. However, Printingsystem Is a complete system. To print a report, you must use Printingsystem , For unpurchased Printingsystem Users, Report If it still needs to run correctly, it must be consistent Printingsystem How can communication be solved? This library uses strings and some basic interfaces. Correct and reasonable practices should be unified ID Or enumeration and other efficient practices. The interface is also very awkward to use in it. For example, an interface has a method to return Someobject Type, and then Someclass After this interface is implemented Someobject Type. However, later expansion Someclass To implement this interface and the return type is required Someobject That is, the derived class must return the derived type. The implementation in this library is also awkward. It adopts the method that overwrites the parent class and returns a new type, but still calls the parent class method. The code is probably:

New somenewobject someproperty {

Get {return base. someproperty as somenewobject ;}

}

First, type conversion is the largest system overhead (referMSPair. NetThe performance overhead test will be known). Secondly, there will be some obfuscation-prone understandings in code management. If the tracing is not performed at runtime, the source code is read only, it's hard for you to know which code it actually executes. I have a deep understanding of this and it feels quite depressing.

Another bloated place is Skin In terms of maintenance, a major part of the entire framework is Skin It also provides tools for self-development. Skin . Self-developed Skin How is the application Applied at runtime? The only solution is reflection. In Skin There are a lot of reflection on the source code. Skin Most of the information is resolved through reflection at runtime. This is a major problem of bloated systems and low performance. About Skin I have not studied this item carefully. It may be better or worse than I know now.

The last bloated part is the integration of new and old modules, and some obsolete code is inevitable. . Net This problem also exists, but it does not discard some simple classes or methods, but some large logical structures. For example, Devexpress. Data When some databases are accessed Devexpress. xpo The module is completely replaced. While Data Most of the features in are retained, which is a large duplicate. Xpo Probably in 6.0 It will be added later. As you can imagine, there are still many duplicates in it.

Well, it doesn't make much sense to sum up these items first. On the one hand, I think I should write something, and on the other hand I want Keep This habit. On the whole, there are still many improvements to this framework, Devexpress Improvements are also being made (I have seen some information about Windows Vista I was a little surprised by the version control code, because my version is relatively early and should not be enough to consider Vista But Devexpress In this regard), on the other hand, this framework is also worth learning. For use, if you do not consider performance issues, it is also a very good control library, the controls are comprehensive, powerful. As for performance issues, if you don't trust the hardware, you can leave nothing to say. Haha ....

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.