📜 ⬆️ ⬇️

Interview with Dmitry Robsman, the creator of ASP.NET

Dmitry Robsman Dmitry Robsman has been working at Microsoft's headquarters in Redmond for 12 years. He was the first developer in the ASP.NET team. He was a manager in the team of dynamic languages ​​(DLR, IronPython, IronRuby) and in the team of Visual Studio, where he also worked on C #, VB.NET and F #. Among his famous personal projects is the Cassini web server, written entirely in managed code, and the ASP.NET RSS Toolkit.

On the "Platform" his appearance began with a long applause. An engineer in jeans and a baseball cap, a man who is really passionate about his business and who understands it to the smallest detail. I asked him to answer the questions you wanted to ask him .

I was asked to convey gratitude for your work. People said that ASP is one of the strengths of .NET.

Thank! Very nice to hear that :)
')
First, a special question: why do you work at Microsoft?

At Microsoft, the main thing is people. There is always someone to learn something new. And in small companies, personal growth has a ceiling. Besides, I like the fact that my work benefits millions of people. Here I can do something that actually changes the world.

Does Microsoft plan to port ASP.NET itself to other platforms?

ASP.NET can be hosted anywhere, although it was first created for IIS.

What existing technologies did the ASP.NET development rely on, in addition to previous developments of Microsoft itself? Since there are direct and close analogies with the standards of the Java world, such as JSP and JSF, I would like to know how these technologies influenced the development of ASP.NET, are they comparable today?

JSP started, as far as I know, after Classic ASP. In fact, JSP is just Classic ASP + Java. And the ASP.NET competitor is definitely PHP.

It is difficult to say exactly what we relied. But JSP didn't exactly make a big contribution. Many ideas circulate in the air for a long time. MVC here was a very long time. And in working on ASP.NET, we first learned and learned the lessons of Classic ASP, which I myself also worked on. We rewrote a mountain of code, did a bunch of iterations with different ideas and approaches. In the beginning, it was 9-10 years ago, the language was based on XSLT. Above the base — above the pipeline, above caching, scaling — we build MVC, WebForms, etc.

How is the process of planning and designing such large-scale concepts like ASP.NET? How do you discuss such significant tasks and exchange thoughts in a large team?

In general, all ideas, as a rule, appear in the heads of individual specialists. Then people just communicate with each other without any special formalities, and one after another - the whole big project is developed.

My team works mainly on ASP.NET. ASP.NET Data Services is another team, Azure is another, Silverlight is also. But there are projects that are created by many different teams. We communicate with them with everyone and move forward together. In addition, there are food groups with whom we also communicate and exchange ideas a lot. This is a sharepoint, for example.

We have a lot of ideas, some are eliminated, and some are developing. In general, programmers are divided into two types regarding how they perceive the value of their work, how they see the situation when they wrote a lot of code, but decided not to include their idea in the release.

One will protect the fruit of his labor and try to push through it in any way. And the other will be glad that I’ve found out - that’s what we don’t need, so we’ll come from the other side. I belong rather to the second type. And if in the process of work our team comes to a result that helps us understand that we have done something wrong somewhere, we are happy about it.

Is there a multi-year concept for the development of C # and platforms, or are features added as circumstances evolve around web development?

Languages ​​in Microsoft are not evolving behind applications. There is an academic side of C # - the team develops it as a programming language. Yes, of course, the multi-year concept exists, but after a year it may differ from the one that is now :)

Why are platform and language updates coming out so often? Is it worth waiting for version 4.5 six months after 4.0?

Changes in any technology first occur at a fast pace, and then it slows down and becomes stable. Over time, it is all the more important that adding a new one does not break something old.

And I do not think that we are ahead of the market. The competition is moving very fast. How many PHP versions are out lately? We have a very large product, which is probably why it seems that there are too many updates. But LINQ's design stage lasted 3 years - not so fast.

I do not know yet about the order of release and numbering of future versions of the Framework, but the Service Pack will not have to wait for long.

How do you see the future of C #? In which area does MS plan to promote it: on the web or in desktop applications? Do you plan in future versions to introduce the practice of separate release of platform releases for desktop and web, for example?

In previous versions of C # and VB LINQ was something new, which was not yet in programming languages. In 2010, we will add more dynamic features in C #. Even further in the future we will do something according to the concept of Compiler as a Service.

Problems with desktop and web applications are common. Yes, some kind of "fork" would be logical, but in fact, to draw the line between the desktop and the web is not so simple. Graphics, for example, can be processed both on the client and on the server, as well as other data. Both here and there it is done in the same way, so the developer can easily apply his knowledge and experience everywhere. Separating these areas so as not to hurt and not to do too much is difficult ...

Do the "features" authors? For example, who suggested lambda expressions, extension methods? Who entered LINQ?

LINQ came up with Anders Hejlsberg. Lambda and Extensions came up with his team, which worked on LINQ.

What are the main reasons for introducing dynamic constructions in ASP.NET?

We would just like ASP.NET to be the answer to all user problems. Recently, dynamic designs have received a second wind. And for the Internet, their use to some extent makes sense. Yes, they have both pluses and minuses. But if people want to use them, we want them to do this using ASP.NET.

When IronRuby and IronPython releases come out, will they be included in the delivery of Visual Studio (2010?) Or will they be a separate product?

The boundaries between the delivery "with Visual Studio" and "separately from Visual Studio" are erased. We will, for example, include in the delivery of VS jQuery. We just concentrate on what people like. IronPython and IronRuby will not be included in boxing from 2010. Although Python is ahead of Ruby and probably putting it in the box would be logical. Even some Microsoft products use it.

When is the planned release of MVC ASP.NET? Are there real examples of APS.NET applications that use the Entity Framework?

The beta has already been released, and the final release is a matter of a few months. I would be very surprised if the release happens later than the first quarter of next year. The degree of readiness we determine by user response. And they say they are already satisfied. Although there are still some improvements in our plans.

Well, the Entity Framework appeared only in SP1, so waiting for some big projects is too early. But, for example, the framework was used by JM Family companies to develop a large car information application and Sunguard to create components for enterprise applications.

What is the place of MVC in the development strategy of the platform as a whole (experiment, alternative or promising technology)?

In fact, many do not know that MVC did not appear recently. He is almost 30 years old! Just recently, this approach has become popular. Packages for ASP.NET that made MVC existed, but were not widely known. ASP.NET began with WebForms, which still lives. But there is a strong minority that WebForms does not like  - for them we are doing MVC. That is, the reason for its appearance in ASP.NET is simply the presence of demand. And people are happy.

Of course, this is more than an experiment. This is an alternative to WebForms and a promising technology. For now, we are planning what will be MVC and WebForms, and will help fans of both.

In general, I noticed that any organization that has at least a dozen programmers always seeks to create their own framework. Because it's just more interesting :)
Tell me, how difficult will it be to hack a site built on MVC (features of request parameters processing by the framework)?

The security of a site built on MVC depends on how this site is written :) More responsibility falls on the developer himself. But of course we think a lot about it, we make utilities for insurance against stupid mistakes. Each new feature goes through a threat modeling procedure. But you still need to work on architectural issues. Security is a process, not a result.

To date, little information about the language F #. Some things from C # cannot be done simply because the corresponding syntax is not described anywhere. The only working way is to ask Don himself questions on his website. When will more or less complete documentation start to appear in MSDN?

This is not quite true; there are communication channels with the team and don’t write personally to Don. Yes, and MSDN has a section on F #. It will be included in Visual Studio 2010, so the information is sufficient. But if there are any questions for which there is no answer anywhere, write to me - to dmitryr @ microsoft.com.

Question about Silverlight. I'd like to use it instead of Flash, but there are problems with portability. It is clear that there is Mono, but it is still raw, and, as far as I understand, it will be guaranteed to work only under Novell Linux. Is there any tendency towards expanding portability?

Aspiration is in the direction of mobile platforms - phones, etc. Mono - yes, he is probably still raw. But Miguel (Miguel de Icaza) is working on him very actively. We definitely want Silverlight on all platforms. And I think Miguel will do everything possible for this. We, frankly, did not even think about doing something beyond what he does :)

Will ASP.NET work on Server Core OS? Which DBMS will be available on this OS, will there be a special version of SQL Server? Or is it all limited to Compact SQL?

Yes, it will work with Server Core. Same platform for web applications. I do not know exactly which version of SQL will be there. But the .NET will be for sure - we are working on it now.

What will JavaScript look like in a few years?

There are two trends in the development of Rich Internet Applications:
- browsers do everything;
- some of the things that the browser can not do, are done on the side - as in Silverlight and Flash, for example.

Which approach will win is hard to say. We support both JavaScript and Silverlight, this is all very important to us. It is important that with any approach everything works quickly and stably, and we invest a lot in it.

Script #. Will Microsoft's Google Web Toolkit appear?

Interest Ask. Together with Silverlight, we make IronRuby and IronPython, which everyone can use at their pleasure. In the same way as some other languages ​​- inside the browser with Silverlight you can handle them as well. But in general, the translated code is very difficult to debug. So now I can not say that we are planning something like GWT ...

What will please Visual Studio 2010 in terms of client-side development?

Once again, it’s too early to confidently list the specific things that will be included in Visual Studio 2010 ... But, for example, there will be the WPF Control Toolkit - many different Controls for WPF.

Here is an interview. Live communication with professionals such as Dmitry is actually a real pleasure. And I hope that we will be able to do such meetings regularly.

Source: https://habr.com/ru/post/46828/


All Articles