A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
Since September, I began to experience the fun and pain of writing. It is fun because I feel like a codeword, as if a novelist is in the fictional world of his own. Although the technical requirements are rigorous, why don't we need a little imagination? The rigorous party can ensure the correctness and accuracy of the technology. However, if there is no illusion or innovation, the breakthrough will become a luxury.
He once said: Happy families are always similar, but unfortunate families have their own misfortunes. However, for the pain of creation, either literary creation or technical creation is completely similar. It's like a talent essay, and it's even worse than a child in my wife's face. It is because, although my wife and children have a pain, there is a child in my stomach; while my stomach is empty and there is nothing, how can I write it out. When I wrote "Essentials and patterns of software design", I deeply realized this kind of profound distress.
At the end of December, at the urging of various parties, the draft was handed in as scheduled. While waiting for the press to proofread and publish, a desire to create seems to say goodbye to hibernation, and completely awake. Coincidentally, there were no project development tasks at the time, so I thought about how to turn my series of "open the door of C #" into a book. A simple directory is listed, and the Creation starts with great enthusiasm. Writing a book is always a treasure to me. Therefore, after writing two chapters, I quickly put them online, hoping to see the responses of most people. I did not expect the praise to stimulate my vanity and self-confidence, and at this time Tsinghua University Press also began to contact me, want to see the book seems to have published value. When I was about to start my C # creation journey, one day, Mr. Chen jicang from the mechanical press suddenly found me and asked me if I would like to translate Juval löwy's programming WCF services. This proposal made me feel excited. After all, WCF is the direction of my research. If this book is translated and published by me, it may become the forerunner of domestic WCF works.
I could not contact Miss Chen of Tsinghua University Press because I had reinstalled the machine and lost all the email addresses. In any case, there are many books related to C # on the market, and I am not missing this book, so the priority will automatically be minimized. As a result, the translation of programming WCF services began to be put on the agenda. After delivering the translation sample, Mr. Chen was very efficient and signed a translation contract with me in a few days. I did not expect this to start my hardships.
As the press is in urgent need of drafting, how to ensure the quality of translation while ensuring the translation progress has become a headache for me. The 600-page book is not so easy. Fortunately, Mr. Xu Ning was invited to translate the book with me, and the burden was omitted. However, the obstacles in the translation process gradually make me look at translation as a tiger, but I have to stick to Jing Yanggang.
The process of translation can really be compared to the process of hitting the tiger. No, it should be harder to say, because my goal is not to fight tigers, but to train tigers. However, it is even harder to tame an adult tiger and bring wonderful performances to the audience. But didn't Chairman Mao teach us to regard the enemy as a paper tiger? Fortunately, this book is really printed on paper. I can handle it too.
Because of my old study, I came up with the idea of recording this translation process. I can write down the experiences, experiences, and difficulties gained from the translation process. In addition, you can extract the highlights of this book and share it with readers. The most important thing is to get more criticism and suggestions, so that the process of my tiger training can be smooth.
2. Translation barriers
The translation standard is nothing more than the word "Cinda ya. It is easy to say. After all, these three words cover the three realms of the translation process. It is not difficult for a general literary translation to meet the "letter" standard. However, for the translation of technical books, it is not always necessary. The biggest headache is the translation of technical terms. Especially in this book, since WCF is based on the. NET 3.0 Platform SDK, it can be said that it is a brand new technology. It is difficult for me to find a Chinese Document on the WCF technology. That is to say, this restricts my ability to stand on the shoulders of my predecessors and lose the opportunity of "planting trees before people and enjoying the cooling of future generations.
If you are writing a technical blog, you can use these terms directly. Sometimes, "not translate" is easier for readers to understand than "translate. However, this is not the case for translation books. The only reason is that the publishing house does not allow this. I admire the creativity of our predecessors in translating technical terms, such as polymorphism, architecture, prototype, etc, but it accurately reflects the original English intention.
In the face of the novelty of WCF, I began to get annoyed. I was thinking about how to translate these terms. If the translation is not good, it may become a serious injury to the translation. After careful consideration, there are several solutions:
1. Try to be consistent with the existing Translation
For example, contract (contract), endpoint (endpoint), and hosting (host) in WCF have basically been recognized by most people. If I want to translate them into contract, end point, and operator, it's okay to find them. Besides, these translations are good enough.
Some words are rare, but we can use the Internet to find existing translations, and then compare them to see if they can be accepted. For example, network hops is very confusing when I see this word. After all, I am unfamiliar with network technologies. After searching by Google, I got an answer, that is, Hops is often abbreviated as hop count, which is generally translated as "hop count ". Therefore, the translation of network hops into the number of network hops should not be too controversial.
2. Create new words through context understanding
These words are often compound words or phrases. It is not surprising to synthesize these words in English. When translating them into Chinese, some people may not understand them. For example, ordered delivery. Why? Because it is intended to mean that the delivery of messages must follow a certain order, finally according to this meaning, I translate it into ordered delivery, or it can be said that it is not satisfactory. Another example is federated ws binding. according to the context, it is implemented by the wsfederationhttpbinding class and supports the WS-Federation secure communication protocol. Therefore, after thinking twice, we decided to translate it into ws Union binding. Such a translation is everywhere, but since such a term may be used for the first time, I often add a description of the original English text in the translated words.
3. No translation
It cannot be translated. It may be the best way to retain the original text. However, in translation books, this situation is limited to terms that are familiar to everyone, especially abbreviations such as WCF and HTTP.
To ensure the accuracy of technical terms, I will maintain a glossary and place it on the website, hoping to receive suggestions from more people.
3. Translation by development
Although it is a translation, we can still apply the project development to the entire translation process. To sum up, there are several steps.
1. Quick prototyping
In the software development process, after the demand analysis stage, in order to obtain the customer's approval as soon as possible, the best way is to adopt a rapid prototyping method to establish a preliminary software model, submit a demo version to the customer. For translation, the original English text is translated into Chinese as soon as possible, and the milestone goal is "letter ". In the translation process, you can obtain a rough but loyal version based on your understanding of the technology and English. This version allows the language to be unobstructed, does not allow analysis of code, and allows small errors. It can even be "difficult to understand" the original article ". Currently, I have completed the "quick prototyping" phase for the programming WCF Service.
2. Regular Iteration
Compared with the waterfall model, the RUP approach is easier to control demand changes. If regular iteration of Agile programming can be adopted, it can meet customers' needs more quickly. The milestone goal of this phase is "reaching ". It is required that the logic should be clear and the language should be fluent on the basis of "information", and the technical expression should be reasonable and correct. To accomplish this goal, you must have a deep understanding of the author's creative intent and objectives. To achieve the milestones at this stage, you can use the following methods:
In software design, the purpose of refactoring is to improve the design of existing code. In the translation process, reconstruction based on "letter" is to improve the usage of the word and word order in the first stage of the translation. Because the first stage only refers to the translation of the original meaning faithfully, there may be a word order in the western mode. Especially for the translation of long sentences, there are a lot of attribute clauses. If they are translated truthfully, the statements will be lengthy and difficult to understand. The same is true for words. Many similar Chinese words match the same English word. In particular, it is often necessary to compare the context to obtain words that accurately express the original meaning. Refactoring means to repeat words and try to find the most appropriate words and express the meaning of the original text.
(2) Continuous Improvement
Continuous improvement mainly aims to revise the Principle Errors of the first-stage translations, especially those in terms and technology. The prerequisite is that you must have a deep understanding of the translation content. If there is code, it is best to read it again and fully understand it. If there is an example, it is better to run it again to understand the author's intention. If the author has errors, it is best to correct them. The goal of continuous improvement cannot be achieved overnight. During translation, you may need to read the original text and the translation repeatedly to make the translation completely consistent with the original text.
(3) Change Control
The change control is quite special, mainly based on the author's modification to the original book, such as the original book's error table. Once the original book changes, the good practice is to embody these changes in the translation. The best way for a translator to translate a good book is to communicate with the author without barriers. Only by fully understanding the intent of the author can we create a good and accessible translation. In this way, the author can notify the translator of the change message in a timely manner, so as to make a revision in the translation.
3. Version delivery
Generally, the test phase is required before the software is delivered. For translation, especially for multi-person translation, the most important test process is integration test and UAT (User Acceptance Test ). Integrated Testing requires a unified style, technical terms, and description. This is necessary, otherwise it will give readers a sense of fragmentation. UAT is difficult to implement because the translation customer is the reader. Considering the needs of the market, it is impossible for the translator to deliver the translation to the reader in advance. Without such a link, there will indeed be many quality problems. However, it is still advantageous to selectively publish individual chapters or content.
The milestone goal of the version delivery phase is "Ya". Therefore, in addition to fixing bugs, continuous improvement is still necessary. The realm of "Elegance" is hard to achieve, but it is close to "Elegance", and the more you can create a classic translation. Just as software development requires an elegant design, the translator's global control and detail skills determine whether this goal can be achieved.
Iv. Contents of this book
The author of this book does not need to talk much about it. He is the owner of idesign, software architect, author of COM and. NET Component Services,. NET component development, and a contributor to Visual Studio magazine and. Net magazine. He is well-known in. NET component development and distributed development. Programming WCF services is another masterpiece.
This book is divided into ten chapters: WCF basics, service contracts, data contracts, instance management, operations, errors, transactions, concurrency management, queue services, and security. The content covers almost all aspects of the WCF technology. By reading this book, you can gain a comprehensive and in-depth understanding of the WCF technology and quickly grow into a WCF expert. Without any doubt, through the translation of this book, I have been constantly growing throughout the process, and my understanding of WCF has become more profound. This is also the most important reason for my willingness to write this book.
The following is an excerpt from my translation of this book, which briefly introduces the content of each chapter.
Chapter 2 WCF Basics
This chapter explains the technical principles of WCF from the very beginning, and describes the basic concepts and building modules of WCF, such as address (addresses), contract (contracts), bindings), endpoints, hosting, and client (clients ). At the end of this chapter, we also discuss the WCF architecture, which will be the key to helping us understand the content of subsequent chapters. This chapter assumes that the reader has understood the service-oriented ideas and advantages. If you do not have this knowledge, read Appendix A first. Even if you are very familiar with the basic concept of WCF, I suggest you make a quick look at this chapter, which not only can consolidate your existing knowledge, some help classes and technical terms introduced in this chapter will help you read the book.
Chapter 4 Service Contract
This chapter focuses on the design of the service contract and how to use the service contract. First, you will understand the related technologies of the service contract, including the heavy load and inheritance of the service contract and other advanced technologies. Next, this chapter will discuss in depth the design elements of the contract to facilitate the reuse, maintainability and scalability of the system. Finally, this chapter demonstrates how to complete interactive programming at runtime through exposed contract metadata.
Chapter 4 Data contract
If the data types of the client and service cannot be shared, if the same development technology is not used, how should we exchange data between them? Through this chapter, you can see some interesting real-world problems, such as the data version and transfer of element sets.
Chapter 4 instance Management
This chapter gives a one-to-one answer to which service instances process client requests. WCF supports the management, activation, and lifecycle of multiple service instances. These technologies are closely related to the system scale and performance. This chapter describes the relationship between each instance management mode and guides readers when and how to use them effectively. This chapter describes topics related to instance management, such as throttling ).
Chapter 4 Operations
By processing operation types, the client can call services and follow relevant design guidance, such as how to improve and expand basic functions, to support callback installation and destruction, and to manage callback ports and channels, provides type-safe duplex proxies ).
Chapter 3 error
This chapter describes how to report errors and send exceptions back to the client. Since exceptions and exception handling are closely integrated with specific technologies, they cannot cross service boundaries. This chapter discusses in depth the best practices for error handling, which decouples client error handling from Service implementation. This chapter also demonstrates how to extend and improve the basic error handling mechanism of WCF.
Chapter 1 transactions
This chapter first introduces the overall motivation of the transaction, and then discusses all aspects of the transaction service, including: Transaction Management Architecture, transaction propagation configuration (transaction propagation configuration), declarative transaction support provided by WCF, and methods for creating transactions on the client. At the end of this chapter, we will discuss relevant design guidance, such as the State management and instantiation model of the transaction service.
Chapter 2 Concurrent management
For concurrency and synchronization management, WCF provides powerful but simple declarative implementation. This chapter describes the implementation method in detail. This chapter also shows more advanced technologies, such as Callback, reentrancy, thread affinity, synchronization context, and best practices and guidance for avoiding deadlocks.
Chapter 4 Queue Service
This chapter describes how the client puts service-oriented calls into the queue, so that it can complete offline work in asynchronous mode. From the very beginning, this chapter introduces the creation and configuration of the queue service, and then focuses on the impact of transactions, instance management, operation failures, and their impact on the service business model and implementation.
Chapter 4 Security
By dividing tasks into basic elements, such as message transmission, authentication, and authorization, You can unveil the secrets of service-oriented security. This chapter continues to discuss how to provide security protection for key scenarios such as Intranet and Internet applications. Finally, I introduced the framework designed for declarative WCF security, which can automatically configure security and simplify security management.
Appendix A service orientation Overview
Appendix A provides services to those who are eager to understand basic service-oriented knowledge. This article describes my specific service-oriented applications. The Appendix defines service-oriented applications (rather than the so-called architecture) and services themselves, and examines the advantages of services from a methodological perspective. The appendix also introduces the service-oriented principle and highlights the service-oriented abstract principle from the practical points required by most applications.
Appendix B Service Release and reservation
Appendix B demonstrates the framework I designed to implement the publish-subcribe event management system. This framework helps you simplify the publishing-subscription service by writing one or two lines of code. The publishing-subscription mode is described in Chapter 5th. It is placed in the appendix because it uses the content of other chapters, such as transactions and queue calls.
Appendix c wcf coding specifications
Appendix C basically lists all the best practices related to WCF outside the book. This encoding specification only explains "how to do" and "how to do" without explaining the reasons. For the Basic Principles hidden behind the specifications, see the chapters in this book. This coding specification also uses the help classes discussed in this book.
Are you eager to read all the contents of this book? At present, I have completed the quick prototyping phase and entered the regular iteration phase. However, there are nearly three months to come before version delivery. If you have been impatient for a long time, please follow my translation notes. This series will gradually show the tip of the Book, which can satisfy some of your wishes.
Start building with 50+ products and up to 12 months usage for Elastic Compute Service