Programming
ROBERT HESS: Is C # considered the private language of Microsoft?
ANDERS Hejlsberg: Not really. We worked with industry partners, especially HP and Intel, earlier this year, we submitted recommendations to a European standardization organization called ECMA (European Computer Manufacturers Association) to standardize C # and CLI. The CLI represents the common language base system (Common Language infrastructure).
ROBERT HESS: And this is not a bit like C Runtime
and VB Runtime?
ANDERS Hejlsberg: Well, the CLI is actually a large subset of the. NET Framework. In a sense, it is. NET can be ported to the rest of the platform. This means, for example, that it does not include any Windows-specific UI libraries, as other platforms have little interest in this.
ROBERT HESS: Just like memory management, and ...
ANDERS Hejlsberg: Well, absolutely, memory management, most of the class libraries are included in the CLI. This proposal was submitted to ECMA in September and was adopted at a ECMA meeting, and work is under way to develop these two standards. One is the C # Standard and the other is the CLI standard.
ROBERT HESS: So, what does C # have ECMA standards mean?
ANDERS Hejlsberg: Well, this means that other industry partners can and most likely implement the language on different platforms.
ROBERT HESS: If I were a company like Boeing, and I had some old-fashioned PDP 11/70 computers, and I wanted C # to run on it, I might consider using the ECMA standard to design compilers for these old folks, if no one else had done anything like that.
ANDERS Hejlsberg: Absolutely right. Now that these two standards have actually been submitted in succession, the C # itself does not now specify a runtime library, but rather relies on the. NET framework, or when we are talking about standard proposals, C # relies on the runtime grassroots system and class libraries provided by the common language base system. We are currently working with standardization organizations and our industry partners to determine the minimum threshold. It is clear that the CLI will be divided into several levels, in fact, the program we submitted to ECMA is divided into layers, which start at a very low core, and you really have these core data types, something as simple as an array, and all the atomic variables (atoms) there, But the molecule (molecules) is not needed. They are built on higher stacks, so for embedded devices, they can actually be applied to a very lightweight environment (lightweight environment), and this lightweight environment can be ported to different platforms.
ROBERT HESS: So I can have a version of C # run on my watch or some similar device.
ANDERS Hejlsberg: Yes, theoretically, or in your fridge, or wherever you need it.
ROBERT HESS: In a way, this is the whole goal of the. NET framework, which is that the grassroots system that allows programming exists in many different types of devices, and a device can communicate with another device through a similar connection, such as a network or Bluetooth, and provide mutual support by borrowing services,
ANDERS Hejlsberg: Yes, that's part of it. I think, now we should keep in mind that while you talk about the communication between distributed applications or devices, the grassroots system that is placed in the. NET framework and even in the CLI does not actually require both ends of the network. NET exists. What's more, the architecture we recommend is really a guide, when we use class libraries to design programs that are entirely based on industry standards such as XML and SOAP, and can also be implemented in Linux box (for example, Java and Apache Web servers), Then use other tools to develop the program at the other end, if you like.
ROBERT HESS: So in my C # application, if I'm writing it to connect to an external service, I can see it as a standard C # call, and an external service running on a different machine might be Amazon.com, or something like some other system that doesn't run Windows or C #.
ANDERS Hejlsberg: This is the dream of all Web services ...
ROBERT HESS: And all that is to be done is to implement soap.
ANDERS Hejlsberg: Yes, well, basically what we're going to do is take advantage of the existing Internet infrastructure, meaning that the transport protocol is HTTP, and the payload (payload) is SOAP (SOAP formatted XML) encapsulated in XML format, And it can actually be anything at the other end of the network. When accessing XML and SOAP calls from C #, we actually have the ability to make them look like objects with methods, but we provide you with all the grass-roots systems, and you can convert the method calls into XML through all the contiguous grassroots systems that are in the. NET framework. In a SOAP package, such a package can traverse the network and return and unpack.
ROBERT HESS: Well, you say you've been working in C # for years now, and the XML life is exactly the same. This means that when they start, there is no understanding of each other.
ANDERS Hejlsberg: Well, XML may have a long history. Soap is quite new, it goes hand in hand with C # and the. NET framework, and we are also very active in introducing these standardized principals from the consortium, and we have been tracking its development and appending these technologies to the latest standards.
ROBERT HESS: So is the interconnectedness of soap and XML at this level (interconnectivity) a part of C #, or is it developed with the development of the language?
ANDERS Hejlsberg: Well, I think there really is some distance. Most grassroots systems that need to deal with XML and SOAP are provided by the. NET framework rather than C #. The C # language is built at the top level of the. NET framework and gives you the power to access these things, for example, by what we call attributes in C #, You can express directly in your code what is being represented by the entity Mapping (mapping) of this class as an XML format across the Internet. So I can say, for example, for a member (field), I want to make this member an XML element with the same name, so that the class name becomes the tag name in the XML, and so on. and attributes can be directly integrated into the code, which is one of the measures that makes XML and C # easier to use.
ROBERT HESS: So they really fit together?
ANDERS Hejlsberg: Yes, indeed.
ROBERT HESS: When considering the design of an application, in order to better use C #, I want to set up the application methodically, is there any different way? Or do you have the same idea of developing a C application normally?
ANDERS Hejlsberg: Well, I think one of the key tenets of this is that you're programming in a very deep object-oriented way, even when you're working in C #, in a component-oriented way. So you tend to think that your application design is a little different. Well, if you're using C + +, you might think of writing objects, and so on. When you write a program in C #, for example, you might think, gee, am I writing a component? Well, this component must be able to add to the Visual Studios toolbar so that I can drag it onto a form, or drag it to a business object, or drag it to a Web page, and then it's not going to be displayed by the property inspector, Gee, So where am I supposed to have attributes, how can I control the things in the Drop-down list, can I have that editor? Now, we present everything in the grass-roots system to you, and it makes you realize that your design is different from the traditional C + + design.
ROBERT HESS: So many times, you're still writing applications, and by decorating the application, you just have more performance to show.
ANDERS Hejlsberg: Yes, you can say so.
ROBERT HESS: What is the complete concept of more such service-oriented services? So I'm writing an almost GUI-free application and running it on a single server and planning to attack it with a Web client program. The client requests first to reach the server and request a response in order to trace such things as the package (package). Does this fundamentally change the mindset, or is it still the same service direction?
ANDERS Hejlsberg: Well, I think in a sense it gives you a little more consideration of abstractions in your application. You should be more aware of how I put the application into the business logic layer (business logic tier) and the presentation layer (presentation tier), how to put the API into the business logic layer, So that it can be represented logically to represent HTML or UI-based customers, and even to indicate an entry point (entry points) for Web services across the Web. Therefore, you should be aware that you can no longer write those monolithic programs.
ROBERT HESS: Do you imagine that this itself helps people make use of others ' components more easily than in the past? I remember when we were working at Boeing, we were always confronted with the key issue of code reuse. We have to make sure that any application, any code that is written is designed for code reuse, although this sounds theoretically a great idea, but in practice, it's a dead ending because it's never been properly exploited, because reusing someone else's code can be really difficult. Do you think this can make code reuse easier?
ANDERS Hejlsberg: I think so, the key thing here is actually the. NET framework. The fact is that we have defined such a bottom layer (substrate) on which components can be generated. And when it comes to a lot of things about how to load them into a class, how to make them into components, we give you a clear guide, and the fact that the entire framework is an example, but the key is that components are accessible in a variety of languages, so here you've talked about this, for example, If some guys are writing some languages or libraries in COBOL and you want to use them from C + +, you know, this can be especially difficult. In fact, we provide you with a substrate that allows you to do this interactive operation. So you have a great desire to make components interoperate. Because, in fact, it is confusing that components are written in different design viewpoints or at different levels of abstraction, which is what makes people confused. They are not accustomed to this style of API, so lost in the grassroots system, trees trees, you should understand what I mean. So by explaining a lot about how to write components and providing a permanent and effective API and grassroots system for writing components, you are extremely hopeful of better reusability
ROBERT HESS: Well, I think the explanation is just right. In order to capture the focus of the C # language system, do you think there is any important concept to let the audience understand?
ANDERS Hejlsberg: I think the best way is for you to fiddle with it yourself. So I will urge people to download from my site, and I believe you will give them the address. Download it, tinker with it, write some examples, join our user groups or newsgroups, talk to other people who have used it, and see what they have experience with. I think you're going to be very comfortable.
ROBERT HESS: I'm sure to create a link behind this transcript to get them to download the current version of C # Runtime and the. NET material we exposed on the PDC, and I guess we'll have another version of ...
ANDERS Hejlsberg: Our beta version 1.0 has to be released ...
ROBERT HESS: Beta 1.0 is soon to be released, so the newsgroups you mentioned will also have a link to Beta 1.0. So you should make sure that the emails you send me contain these newsgroups so that I can build them.
ANDERS Hejlsberg: OK.
ROBERT HESS: Thank you Anders, thank you for your conversation, and I hope the audience will thank the expert who has really helped design the C # language and thank him for his experience in developing applications.
After a short break, we will continue to talk to a programmer who has been using C # to develop the application for some time now, and we will understand his thoughts on the language and any clues that will help us develop our own applications in C #. So please don't go away oh.
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.