In the past two decades, C and C ++ have become widely used development languages in the development of commercial software. However, both C and C ++ provide some features that are easy for developers to produce errors. It can also be said that the flexibility of C and C ++ sacrifices the development efficiency. Compared with other development languages (such as VB), C/C ++ software with the same function usually requires a longer development cycle. Because of the complexity of C/C ++ development and the long development cycle, therefore, many C/C ++ developers are looking for a development language that can increase balance between functions and development efficiency.
At present, some development languages sacrifice the flexibility of the C/C ++ language (some necessary flexibility) in exchange for development efficiency. Some languages impose too many restrictions on developers (such as limiting the use of underlying control code) and provide fewer generic naming capabilities (TRANSLATOR: may be the ability to reference variables and functions ). These languages cannot be easily combined with existing systems, and cannot be combined with current web development.
A reasonable C/C ++ alternative language should be able to provide effective and powerful support for efficient development on existing and potential platforms. In addition, web development can be easily combined with existing application development. In addition, C/C ++ developers tend to use the underlying code when necessary.
M $ released C #
In this case, M $ is a development language named C # (pronounced C sharp. C # is an advanced and object-oriented language. Through C #, developers can quickly establish a wide range of applications based on the MS network platform, it also provides a large number of development tools and services to help developers develop various applications based on Computing and communication.
Because C # is an object-oriented development language, C # can be applied to the development of high-level commercial applications and underlying systems in a wide range. Even through a simple C # structure, various components can be easily converted to web-based applications, and can be called by applications developed by various systems or other development languages over the Internet.
Despite the advantages mentioned above, C # can also provide rapid development means for C/C ++ developers without sacrificing the features/advantages of any C/C ++ language. From the inheritance perspective, C # re-implements C/C ++ at a higher level. People familiar with C/C ++ development can quickly become C # developers.
Development efficiency and security
Currently, various web application-based software development challenges traditional commercial application software development. Developers are organized to develop applications with shorter development cycles, in addition, it is necessary to provide better maintainability, rather than building a software system that can be used for a long time.
C #'s design fully considers these factors. C # helps developers implement the same functions with less code and better avoid errors.
Integration with Web Development
The new development mode requires better use of existing web standards, such as HTML, XML, and SOAP (Simple Object Access Protocol ). Existing development tools appeared before or before the emergence of the Internet, so they cannot meet the development needs of the current web technology.
C # developers can easily expand their applications on the M $ network platform. C # It can transform any component into a web service and be called by any application running on any platform on the Internet, it is important that C # provides built-in support for this feature.
More importantly, the Web service framework allows any web service to look like a built-in object of C, therefore, developers can continue to use the object-oriented development methods and skills they already possess during the development process.
In addition, C # has many other features to make itself the best internet development tool. For example, XML has become the standard for transmitting data structures in the network. To improve efficiency, C # allows you to directly map XML data into a structure. In this way, you can effectively process various types of data.
Reduce development errors
Even a good C/C ++ developer can hardly avoid common errors in the coding process, such as initializing a variable with errors, such errors may lead to unpredictable errors and are difficult to detect. If errors are put into the production environment before they are detected, it will be expensive to exclude them. C #'s advanced design can eliminate many common errors in C/C ++ development, such:
- The garbage collection mechanism reduces the burden on developers to manage memory.
- Variables in C # will be automatically initialized according to the environment.
- Variables are type-safe.
Using C # will make it easier for developers to develop and maintain various commercial applications.
Provides built-in version support to reduce development costs
Updating components (modules) in a software system can easily lead to errors, which may affect the existing software during code modification. To help developers solve these problems, C # has built-in version control functions in the language. For example, function overloading must be explicitly declared (This often occurs in C ++ and Java), which can prevent code-level errors and retain versioning features. Another related feature is the support of interfaces and interface inheritance. These features ensure that complex software can be easily developed and upgraded.
To sum up, these features can help develop more robust software versions and reduce development costs.
Strong functions, ease of expression, and flexibility
Better integration of processes and software in commercial applications
To better implement the company's various business plans, there must be a close link between business processes and software implementations in the software system. However, most development languages cannot easily associate various application logic with code. For example, developers use various Annotations to indicate abstract Business Objects represented by different types. C # allow the use of predefined data or extended metadata on any object. In the system structure, you can use the region attributes (such as the network domain structure of NT) and add these attributes to the class, interface, or other elements. Developers can independently test attributes on various elements. This will make it easy to determine whether the interface is correctly defined, for example, to collect object attributes in a region, or to write classes in an automatic tool to guarantee.
Scalable collaboration capabilities
Despite strong management and good transparency, the type-safe development environment is suitable for most commercial applications, however, practical experience tells us that some applications need to be encoded using the original development method for execution efficiency or combination with existing application interface APIs. In this case, many C/C ++ developers prefer to abandon some development tools that can improve development efficiency. C # solve these problems through the following methods:
- Built-in support for com models and Windows platform APIs.
- Restrict pointer usage.
In C #, any object will automatically become a COM Object. Developers no longer need to explicitly implement iunknown and some other COM interfaces, and can also conveniently and naturally use existing COM objects, you do not need to worry about whether these COM objects are developed using C.
For developers who use C #, C # allows developers to call the APIS provided by the OS. Use pointers in the marked code area and manually manage memory allocation. This allows C/C ++ developers to become familiar with C # and do not need to give up the Development habits formed in previous development, in addition, the previous C/C ++ code can still be reused. Both com support and API call support are designed to provide developers with sufficient development control capabilities.
Summary
C # is an advanced and object-oriented development language. It is also a convenient and convenient MS network platform for establishing various applications and establishing Web services that can be called between networks. From the perspective of development language, C # can help developers avoid errors and improve work efficiency. It also has the powerful functions of C/C ++.
For the original article, see msdn.microsoft.com.
Translator: C #, will it set off another development revolution, just like VB. However, C # may be out of the control of the designer and become a malformed state. (Maybe I personally do not agree with the practice of bundling development languages on the operating system) but C # does not end up with the limitations of the current development mode, it can only be said to be a processed C ++ that is more suitable for the MS Platform. However, C # is a development language proposed after deep thinking, which is more advantageous than other development languages. Because many languages are the product of experiments. For example, C and Java. Regardless of the result, C # is worth looking forward.
Although Ms is facing many crises, its ambition to unite the world is not hidden at all. :-D