Title: No head, no tail - Project development note: How to choose a project development language ?!
Keywords: distributed development C # project division Delphi with C # mixed development
January 15th: 2003 is here, there is no different place. The day is always a matter of peace often .........
The project has reached the medium term, and the project team also entered the stage of attacking. The summary made in this period is often about some applications in the project and new methods in the project. It should be said that I have a problem with some ideas before. For example, the foundation is not good. But as a member of the project team, there must be a good mentality. The problem does not mean that the project will end in failure, but to improve the project with more time and energy. And it is also necessary to summarize to prevent the same problem as follows.
The choice of project development language is that the project team needs to decide when systematically investigates. If the project development language is not good, it may mean that more time and energy will be taken to complete your solution. However, when you choose a project language, you may not expect the development of the company, the development of the industry, the development of the industry, the development of the project, so there is no way to set the selected project development language in the earliest time to truly suit this project. In this project I have participated, the final selected project development language is VS.NET plus Delphi development. It can be said that this development method itself is a very good development method. But in this project, it has some parts that are not suitable for development.
If you don't know the project situation, you can refer to the previous item notes.
http://www.9cbs.net/develop/author/netauthor/viktoryu/
BACKGROUND
I mentioned previous projects. I mentioned that the company's previous project and products are basically VB, or Delphi development, and the business scope of development project adaptation is also limited to the solution of the company's internal network. It can help companies turnover and manage the documents that are written in the previous unit into the previous unit. The selling point is that it can be well integrated into business processes within the company. Due to the development of new technologies, only the business integration programs within the company have lost their competitiveness in the industry. Through the new understanding of users, we find some need for cross-enterprise applications. These new needs If the previous pure VB or Delphi development technology has been significantly unsatisfactory, new technologies must be used to get it.
It is known that we must use a new development technology to develop distributed solutions. We tried to use Java to develop this distributed solution. However, most of the technical composition of the technology and the technical composition of the company, most are familiar to the development of MS. So the new project is prepared to develop vs.net. After a long time, it is prepared to be prepared to be familiar with it. We decided to use the VS.NET's Web Service mode to complete the solution. However, when we know in depth, we have found that for traditional industries, if we use VS.NET to develop clients, hardware requirements are difficult to implement. Especially when we can arrange .NET Framework on a machine that is very poor in hardware configuration. (Our client has a very poor machine, 586 machines may also have.) And there is a bottleneck that is difficult to break through, that is, customer requires our application to download and install directly from online, try to use China's dial-up network downloads a 20m .NET Framework installation package ............
So the remaining two options have been discussed.
2 make a pure B / S structure, this structure uses the web page to give the information to the customer;
2 or the technology of Web Service, just to find a relatively old language to develop, in such a way to solve the installation problem of client software.
The initial consideration is that in the members of the project team, only one group member who has used ASP has been used in projects, and there are four from Delphi. And the members of the project team quickly made a DEMO to verify that the Delphi calls the Web Service method is fully feasible. SO, we have chosen to give up the use of B / S, but use the VS.NET development server side, Delphi development client hybrid development method. The way VS.NET is integrated with Delphi does not have a mature precedent to learn from. As we used to develop a project that can be implemented and submitted with VS.NET.
Problems encountered in this project
The project is currently developing this C # Delphi, and members of the project team have become very complained from the most advanced technology.
2 DataSet's WebService format The difference between the ClientDataSet WebService format
The WebService format stored by MS's DataSet is very different from the Web Service format of the ClientDataSet defined by Delphi. This difference causes us to process data when the DELPHI is received.
It can be said that we have thought of this problem at the beginning. But the trouble is not just the difference in format. More troublesome is that the data processing has been added in the DataSet of the MS. An action on data is increased, modified, and deleted can be recorded in the XML document during transmission. This will have a lot of trouble to directly return the ClientDataSet. In the early days of development, we provide the operational function of the DataSet of the MS, and require developers who develop client applications to call these methods. The problem that this operation brings to the code written by the client. In addition, it is necessary to use such a very troublesome way of operation, resulting in very low development efficiency. Double low. Of course, we reopeously have a package, and the description of the operation is put on the interface program for unified processing. This will increase our development efficiency.
Since we have made many examples of Web Service on a lot of NETs. Then the transformation of the development language We hope that the client's development is similar to the client developed using VS.NET. In this case, if we will have new customers, you can use C # as its client, our experience can also be used to maximize. So the current implementation is to simulate some C # operations in the development of the client. Relatively, C # is more stringent in the operation mode of the data and will be very stringent of the data. This strong constraint will make it habitually to use VB, Delphi developers who use the database directly write SQL statements to operate very uncomfortable.
For example, when modifying a commodity, the traditional manner uses a time tag and the primary key to modify the record and the last modified value. This way to return to the verification database data and the data modifications after the verification is successful. The way the C # method is to turn the original data and the modified data to the server. The first step of the server will be the automatic comparison of returning trails and the version in the database is the same, whether the data is exactly the same, this The data does not have a priority concept, and the most important data must be completely submitted as the least important data. The above two ways have caused a lot of disputes with many developers. There is no importance of data that makes it difficult to submit errors in the development of data.
Treatment to the above problem can be said that we are too tutor. MS provides a very complete data check mechanism, which is very complete in the way using Web Service, which may have concurrent databases. But it doesn't mean that our projects must also require this complete. For our special business needs, it may not be concurrently handled in some business, which may be so complete, then you should find a better way. To process data submitted.
2 Difficulties in development management
In terms of development management, two language hybrid development have increased the difficulty of management of source code. And the project team did not study to find a good way to mix the development of source code management for both languages. (Former experience only in two languages in a project, these two languages are responsible for managing. The current situation is that the interface definition between the two languages is not very clear, and the final module development is developed. The way developers in each module must be developed in both languages, as well as the source code developed by both languages. This experience is not, and this situation should be Be avoided.) Aspects, you need to pay attention to the project development language
If you want to select a language to develop a distributed application project, then your choice can be very very very. From Java, to vs.net, and so on. Then choose what is the rules that should be like the language, you should pay attention to what kinds of things should be avoided, here there are some items in some projects.
l Features of the project
The characteristics of the project are undoubtedly the most important factor when developing languages. Because of the choice of development languages, it is generally director-in-law to be responsible for technology. Sometimes the specific developers have nothing to do with the developers, and the truly development process is written by the developer to write a line of writing (tool generating code is not counted). However, it is often not letting developers will choose to develop languages.
I often hear a lot of friends to tell me about the experience of people, the so-called project, must be done with the most mature technology. Don't use the latest technology, don't be promoted in Dongdong. This principle can be said to be a very suitable principle of the project. But after careful analysis of this rule, you can find that this rule only applies only to a time-tight project (which project is not like this? So this rule has always said that L) if the time is longer, or It is said that there is a project with experimental nature, then it is necessary to conduct a comprehensive attempt to new technologies.
Pay attention to the characteristics of the project
u company situation
If the company is in a survival period, then you must don't engage in your own unsolicited stuff, first make the project.
u project
Project is just a simple application, such as an application of an internal network, then select a simple method, do not use technologies such as Web Service. At least not to see the new technology in the case of seeing the precedent
u project time
If the project time is very nervous, then it is finally developed with its familiar development language.
u Project member staff configuration.
In project members, if many people are familiar with a class of languages, this language can solve your problem, then it is best to choose this language.
l Last selected basis
What is the basis for the last choice when there is a lot of choice to play in front of the project team?
A relatively large error in this matter in this matter is that the choice of project language is too simplified. Just considering the project language selection scheme is feasible or not feasible. There is no fully certified and comprehensive consideration to this program. Since the project team is not a good certification, we have a lot of time and effort we have been wasteful when we develop. This scale is very easy to ignore when there is no time to authenticate.
It can be seen from above that time factors have a great influence on the choice of project technology. The above is just part of it. There is also a part when time is tight, be sure to develop a developer's more familiar development language, and other languages have better vitality, they cannot be used as a project development language. In this project, it is based on the consideration of this, so the client is selected to develop Delphi. This way we can also maintain a continued project after a lot of time and energy. There are many problems that we can rely on developers to quickly solve the familiarity of the client language.
The above is not included in the language and tools used by project management, code management, and testing, temporarily I can't think of what these stuff should be decided. Overall, the choice of project development language is basically no right. Just choose to have a good impact on the project after choice, it will increase the difficulty of development. Friends who want to meet these problems with me.
Mailto: viktoryu@hotmail.com