.NET myth

zhaozj2021-02-08  258

The release of .NET myths Visual Studio.Net has been published in the past six months, and Windows .NET Server RC1 has also been published, and the Net heaven is about to be fully completed. Under the publicity of M $ spare no effort, it seems that software development is about "running into communism". However, whether it is for the old ratios and M $, it is still for the majority of developers, this paradise is not far from the horizon, and where is the situation. There is no good news from .NET born: The majority of J2EE camps have increased publicity, and SOAP / WebService, which is advocated to .NET is also supported; there is also a wait and see between .NET / J2EE Still still waiting to be waiting; Gartner issued a warning that the power of the .NET is too high, the risk is too big (this is also a vision); just before the Windows .NET Server RC1, M $ is also open to acknowledge. Net is not Get expected success. For developers, where is the situation. Let's take a look at the .NET so-called multilingual support: .NET nation can support a variety of languages, as long as there is a corresponding compiler to compile it into an IL, you can run on the .NET's CLR. It is true, but in fact, the common language such as: C , Object Pascal, Java, VB, PB, etc., the difference is not essential, as long as it is proficient in a language, learning other languages ​​is not difficult, provide this The ability to use cross-language is not too big. The problem is that every language has its corresponding development tools, and these development tools provide powerful run library (class libraries) support, which is the key. Simple Example: The programmer of C Builder can easily go to delphi, but it is difficult to turn to VC, because C Builder and Delphi are VCLs, but VC is using MFC. Therefore, relative to the migration of language, the migration of the library is the most difficult, but .NET requires all languages ​​that run on it use the class libraries provided by the CLR. On the surface. Net is to provide a public operating environment for all languages, but in fact, it is a full performance of American "world single-polarization" hegemony in software development. Once all languages ​​are migrated to the .NET platform, they will lose their own, and finally only one language is left: C #, because only it is the unpacking of the CLR class library, other languages ​​are just effective. This is the purpose of M $. However, M $'s abacus has not been awesome, and the dream is beautiful, the reality is cruel. As a developer, familiar with a class library is a very long and painful process, and the incomplete CLR library is a huge and unparalleled library, which is turned to. Developing, the cost and risks are very large. This is why VS.Net Beta1 just launched the reason for the VB programmer's complaints, because VB.NET is used as a matter of VB in addition to the grammar, it is not only one thing. The only thing is good for .NET is new developers, they don't have the development experience on other class libraries, and .NET may be their choice. There is also an ISV (independent software developer), and they choose to give up the currently used language and class library, and the possibilities will be small under the .NET platform.

Even if this transfer is necessary, I believe that most ISV will choose a more mature J2EE. After all, the company is different from individual, and the risk of migration has caused much loss than individuals. There are also some ISVs in use .NET, but that more is for the purpose of the market, the light of the .NET can save a lot of advertising fees. After all, there is M $ in that .NET burns the horn. Let's take a look at CLR / IL: This is by no means a new concept, as long as it is slightly analyzed, it knows the principle and Java. M $ saying that the CLR will compile the program compiled into IL into COM to run, but now many JVM support JIT compilation, and there will be no too much in performance. At present, CLR can only run on the Windows platform, and all aspects cannot be followed by UNIX platforms (Java is not very good in Windows, and there is a good performance on Unix) computes. I have seen some people who don't accept this. In fact, this is very obvious: Windows mainly runs on the IA (Intel architecture), Intel's CPU parallel capacity is limited (it is said that its CPU only supports 2 SMPs, 2 ways are motherboards Implemented, unless Windows can enjoy multiple SMPs well in Windows on the Alpha platform. And UNIX can run on various MAINFRAMEs in various dozens of machines, and the load capacity is very strong. I also have seen some people say that Windows can achieve stronger loads through Cluster (cluster) technology, and reliability is higher than Powerful's UNIX machine. Later, I learned from Microsoft's technicians to know that it was just like this. Currently, Windows 2000 Advance Server supports dual-machine Cluster, Windows 2000 Data Center only supports 4-machine Cluster, far from the stream of Mainframe. More than, Unix can also CLUSTER. There is ADO.NET: This is copy, no good blown, stateless database access in the Midas 3 in Borland, the concept of ADO.NET's DataSet offline data set is also from Borland's clientDataSet , Only ADO.NET has developed it, such as: there can be multiple data tables in the DataSet. The worst point is that ADO.NET is not compatible with the previous ADO (in this point, I have consulted Microsoft people), and ADO.NET is part of .NET Framework, ADO 2.7 is just .NET's ADO, Non-ADO.NET (which I also consult with people in Microsoft Global Technology Center). This means that if you write multiple layers with .NET, the client must also install .NET Framework. Of course, relatively old ADO, ADO.NET is a big progress, but there is no great benefit for the previous use of MIDAS developers. There is also a myth about .NET is: .net can solve the DLL Hell problem. Probably I am ignorant, I have never heard of DLL Hell before .Net, I noticed that there is still such a problem with the DLL when it is.

But a careful investigation, the problem is still in MS, MS is in the development of Windows, which is he developed, and it is free to use and distribute various DLLs, but do not deal with its compatibility, see how many differences in your machine The version of MSVCRT.dll know why the program written with VC is relatively small. The worse is the DLL used by Windows. I believe that the problem of displaying anomalies because ComctL32.dll should have encountered it. Finally, it is determined to solve this problem under .NET and MS. But it is also this .NET, I finally met this famous DLL Hell when installing Visual Studio.Net Beta: I originally installed the HTML-related programs that were working very normal, since installed vs.net XXX.dll errors, cover the original corresponding DLL in the Windows installation disc, and vs.net is the same. Hey,. Net is this solving DLL HELL? No, I have to don't have to use that software. Then look at the installation of VS.NET: First, .NET Framework can not be not up, when installing this stuff, I first thought of Win32S in the Windows 3.x era. I don't know if I have time eight years, how many people remember this stuff, the MS as a transition between Windows 3.x to Windows 9x, and MS is to use it to extrude other competitors out of the market. I don't know if it is now .NET framework, I want to repeat, but fortunately, "Wolf is coming" is two times. And this .NET Framework is not hateful enough, hate it actually put IE 6, I have been with an IE 6, I have already encountered it to bring me two big troubles: First, browse some use When the page made by Lotus Notes, the abnormality is displayed, and even if an accessory error occurs when the mail system accesses NOTES is sent. The second is that it modifies the directory tree in Windows Explorer, set it to rowselect, that is, you can choose this directory as soon as the line is located in some directories, this is simply to go crazy! Then look at the installation of vs.net itself, I met the problem when I was installing the official version, then I forgot to turn off the real-time monitoring of the anti-virus (later discovered this reason), install it to the last one (4th) When "Registering Compilation Components {xxxx-xxxxx ...} (this is a guid), an error occurred, the error number: -21xxxx", I don't know how many people can see what this is? error? And it doesn't give a chance to retry, there is only one determination, then the rollback is installed (it is clear). Later, I finally thought of this may be a hresult value, so I have written a program to see if this -21xxxx is sacred, the result is a look, four Chinese characters: "Reject Access". That stupid installer! It is not a matter directly, just a matter of API function, I have to take MS experts.

转载请注明原文地址:https://www.9cbs.com/read-2645.html

New Post(0)