I recently saw a lot of discussions on components or controls based on components or controls. I want to talk about my own ideas for everyone to refer to:
First, it should be said that the typical mode of pure software development is vertical, this type of mode is the implementation of the development team is responsible for the implementation of each function of a software. They are responsible for the functional design of a software, code writing, test installation, and also responsible for the functional division of each module within the software and interface definitions. This is the mainstream mode of traditional development, in fact, the only feasible mode before, because if you want to distribute a full software to different team collaboration inevitably involve how each module is assembled together in the future. This requires a complete set of complete system frameworks and interfaces to guarantee. Although there are some simple architecture frameworks and reuse standards such as DDE, OLE, etc., but the completeness of the system is unable to bond the stability of various third-party components that are bonded together. . So simply doing yourself to solve all the problems is the natural and reasonable choice at the time. But the current situation has been greatly improved. Microsoft's component standard is gradually increasing by the initial OLE to COM, DCOM, COM until the nearest .NET system wings, while other component standards are also increasingly mature, Java series, such as Java Beans / EJB / RMI, etc. It can be said that the mainstream development platform has gradually developed towards the components. Unlike the C language era, the current mainstream development language cannot provide a complete set of component development interfaces that cannot be thrown in the future competition. CORBA standard I don't know how to look at the .NET Framework platform system underdeveloped function is less and less, the real thing is a CLR, and the rest is all kinds of libraries accumulated from the bottom, the whole After the system is complete, it has finished the full components. Whether it is the basic IO of its implementation, more advanced, such as data inventory, all kinds of packaging class libraries, foreign third-party libraries can be very convenient to integrate into .NET Framework system, and Microsoft's own class libraries The only difference is that assembly name is different. This way of wood-proof ways provide an objective condition for the past closed-type development to the division of labor assembly. Therefore, the development method of componentization is the future trend, which is a thing of water to the streak.
The second point, in the past, the software package, the components and the like are often discussed within the scope of software reuse, and the software reuse often has a waste utilization, and the taste of saving, and basically An organization, interior of the unit. The most typical scene is that a company's software developer or supervisor is often quite emotional after the development of many projects: so many projects, many function modules are repeated development, wasting a lot of human resources, if the code of similar functions can be reused Enough. . . My point is to be able to reuse the best, but this reuse is not large in an enterprise, because the items can be involved in a single business, it is possible to extract a certain type of function to the practical experience of mature and stable component. Too few, even if you really cost a very strong force, you can use the part of the parts that can be reused in the ordinary project and package it separately, you can use the opportunity in the future projects to be limited, and the benefits that can be obtained more than the reusable module required for the previous period. Identification, interface customization and other costs are too large, and often leads to the wishes, it is difficult to achieve. So now the meaning of software components is more important that industry division of labor. The development of a software includes which must step, my understanding is two major links: one is a design, one is implementation. The design is to determine what the system should do, and the implementation is the code of design goals. These two links reflect two different capabilities, and determine the target design system mainly understand the understanding and grasp of the target customer industry process, the code implementation is mainly understood to understand the software language syntax. Everyone usually refers to the core competitiveness of the enterprise. For pure development technology, the current trend is that development tools (IDE) have slowly evolved into standardized operation platforms, which only provide the most basic core function, more importantly, It has defined a system to improve the component interface, and the higher level is completely relied in all third-party components, and in a sense they have evolved into a new operating system. Based on this background development platform standards in fact already monopolized in a few large software oligarchies. So our focus should be transferred to the seizure and system design of the area customer business, because the software and any other industry have a common point in industrialization. Since our software company is more close to the end customers in the entire industrial chain, we should use this resource, and do your target industry to form your own unique advantages. Perhaps the software companies in technology are concerned that all kinds of underlying technology are this point. All day and customers discuss how many process demands have little less. In fact, this is just the traditional thoughts of the technical personnel, there is It is a line of programs, don't forget that the first large consultation company Essen is specially studied business processes in different industries and the IT project consultants, although not involving any specific technology coding, but also makes any other IT companies in China. . The Big IBM in the IT industry is also increasingly putting industrial consultants as their business center. Also is the core competitiveness of the old SAP of the enterprise software market or its ERP products reflect the accurate grasp of the process of industry sectors. As for the techniques and languages used in the development of products, it may even be more modern than many companies in China. fashionable. Therefore, domestic software companies use components to simplify their own development burden and more focused on business analysis and design is a better choice. Software development is like building industries, implementing various module functions, and the code will become like cement brick tiles. The same is both ordinary communications, and is also the most valuable company like building a building, which is the company that knows how to design, cost and quality control. No real estate company will self-sound because of some particularly good cement or hollow bricks. Although software development is not like covering the house, there is no technical content, but the development technology civilized chemistry, the popularization is also a general trend. In the past, the days who understood a particular technique and a fresh day were rare;
Third, the current analysis of the current software components industry groups. In fact, it is very common in foreign countries. At present, more than 110 software companies have produced more than 1,000 different types of software components, with considerable part of the components available to purchase, and ordinary software different component products Generally, it is sold as a development tool, and its cost software store developed with them only needs to pay a product's price, regardless of how many licenses are charged to how many customers use the final product developed by this component. According to major companies in the preliminary statistics software industry, components have been widely used to develop products, and even the most of the world's five hundred have also used different components products in their own projects. So the needs of the need to develop the 'ammunition' now has been very sufficient, and many of the components have been operating in their respective fields or even more than ten years, and the components produced have commercialized from quality or performance. level. Many software products are well known to the merchants, but few people know that many of this cash-rich product has its core module that only spends hundreds of dollars from component manufacturers. Because component products are semi-finished products, they are often packaged by the final product and they are acting as behind the scenes. From a wide variety of components products, domestic software companies are like a gold mine to be developed, which is good at using existing components, excavating their potential value, maybe a few thousand dollars will be derived from a 100 million yuan profit products. This new product development model is much better than to achieve a complex core function. The last point, I want to talk about how to use the assembly development software. Generally, components are divided into free and commercial products, and there are also differences that have no source code. In general, the free component functions are often relatively simple, the performance, stability, and the improvement of subsequent upgrading are not guaranteed. The reason is that there is no need to pay for you if you don't pay for you. The commercial components should be much better in the above, and there are complete documents and follow-up services. For any occasion, the project should use the component to adopt the component, I will generally summarize some situations:
1. Software companies have a certain scale, intended to launch versatility in a certain field - It is recommended to purchase the source code commercial components related to product core functions, because once investment, follow-up and similar product lines Expansion can reuse the purchased components for a long time, and if there is a source code to modify its function according to your needs, the product is constantly upgrading its own products, that is, by purchasing high quality core function components to create our product advantages in the target field, this Category, the function and scalability of the component is the first, the product price is second;
2. Software companies have a certain scale, most of the projects are one-time pro projects - can consider purchasing non-source commercial components and combined with free components. Because such items are relatively small, it may be a problem for a project to purchase in other projects. It is not necessary to spend additional money to buy the source code of the component. In addition, some functions can be used as much as possible with the source code of the editorial component. Because there is no need to consider too many subsequent upgrades and expansion, independent projects are more valued, and the quality of the components is good for ENOUGH;
3. The software is still in the initial stage, intended to identify advantages in a certain field, and launch universal products. In this case, I think I can consider my choice from two aspects. One is to choose a field that is very familiar with my own business. It has obtained product competitive advantage through system design and function; for many initial phases, there is no business in their own advantages. I think it is possible to find it in the component market. See what product is more novel, you can use it to quickly packaging quickly. After all, at this technology, the speed of the IT field product has decided everything. You have a good idea, and the product made by the high goals is nothing to do with others even for someone else. Here I deliberately mentioned the commercial components, because the first quality stable follow-up service reliably, it is convenient for long-term management related products, if it is a free component basically there are many bugs, it will take a long time, and Because it is free who can easily get it, it is more difficult to imitate the product that is derived on this basis, so your product is hard to establish a technical advantage. 4. The last category is that the company has just started, and it is still in the case of orders to maintain basic overhead. I think this kind of company can pay attention to some of the interested components in the market, but unless it is determined to launch the long-term planned product, don't shoot it easily Because the cost of purchasing components is small, the key is to support the human material needed to develop universal products in a short time.
The above is a point of view of the development of components. Not very mature, counting some experience, welcome the majority of colleagues to talk about their own ideas. After all, component development is relatively relatively new, our software industry needs more research and understanding.
=================================================================================================================================================================================
Excerpted from China Component Network Forum (
Www.componentchina.com).
China Components Network --- Authoritative Components and Source Distributors