1. 选择C#的10大理由
1.1. Strong C++ Heritage
Visual C# leverages a strong C++ heritage that provides developers with a solid foundation for intelligent object- and component-oriented programming and a language that is immediately familiar and comfortable to C++ and Java programmers, regardless of skill level.
1.2. Object-based Type System
Visual C# provides developers with a modern and intuitive object-based type system that negates the need for complex and error-inducing pointer and template features found in other languages.
1.3. Access the Microsoft .NET Framework
Visual C# provides developers with access to the Microsoft .NET Framework, a robust, thread-safe library of collection classes, networking functionality, data access classes, and more.
1.4. Component-oriented Development
Visual C# provides developers with a powerful component-oriented development language that includes support for properties, indexers, delegates, inheritance, versioning, attributes, and much more.
1.5. XML Comments
Visual C# allows developers to use Extensible Markup Language (XML) Comments to provide useful and customizable source code documentation.
1.6. Standards-based Language
Visual C# provides developers with a standards-based language that ensures community involvement and consistent innovation.
1.7. Interactive XML Web Services
Visual C# allows developers to deploy and consume rich, interactive XML Web services that reduce development time by enabling software aggregation from any platform.
1.8. Target Any Device
Visual C# lets developers target powerful desktop computers and a wide variety of handheld and wireless devices using identical tools and skills.
1.9. "C Style" Memory
Visual C# gives developers access to "C style" memory management and pointers when necessary, rather than forcing developers to author code in other languages and tools.
1.10. Visual Studio .NET IDE
Visual C# provides developers with the award-winning Visual Studio .NET development environment, which includes support for Task Lists, Property Editors, Microsoft IntelliSense®, Forms Designers, and much more.
1.1. Strong C++ Heritage
Visual C# leverages a strong C++ heritage that provides developers with a solid foundation for intelligent object- and component-oriented programming and a language that is immediately familiar and comfortable to C++ and Java programmers, regardless of skill level.
1.2. Object-based Type System
Visual C# provides developers with a modern and intuitive object-based type system that negates the need for complex and error-inducing pointer and template features found in other languages.
1.3. Access the Microsoft .NET Framework
Visual C# provides developers with access to the Microsoft .NET Framework, a robust, thread-safe library of collection classes, networking functionality, data access classes, and more.
1.4. Component-oriented Development
Visual C# provides developers with a powerful component-oriented development language that includes support for properties, indexers, delegates, inheritance, versioning, attributes, and much more.
1.5. XML Comments
Visual C# allows developers to use Extensible Markup Language (XML) Comments to provide useful and customizable source code documentation.
1.6. Standards-based Language
Visual C# provides developers with a standards-based language that ensures community involvement and consistent innovation.
1.7. Interactive XML Web Services
Visual C# allows developers to deploy and consume rich, interactive XML Web services that reduce development time by enabling software aggregation from any platform.
1.8. Target Any Device
Visual C# lets developers target powerful desktop computers and a wide variety of handheld and wireless devices using identical tools and skills.
1.9. "C Style" Memory
Visual C# gives developers access to "C style" memory management and pointers when necessary, rather than forcing developers to author code in other languages and tools.
1.10. Visual Studio .NET IDE
Visual C# provides developers with the award-winning Visual Studio .NET development environment, which includes support for Task Lists, Property Editors, Microsoft IntelliSense®, Forms Designers, and much more.
解决方案 »
- C#环境下用GDI+高效绘制矢量数据的方法讨论 (100分)
- 如何判断一个字符串中包含几个字母,几个数字,几个标点?
- 列名 'heihei' 无效。
- 如何让 Label.Text 的字居中显示?
- ASP.NET如何避免类似于asp下的fso对象安全威胁?
- C#调用Jmail接收邮件时,主题显示为乱码?
- [求助]:菜鸟问题。一个实现依次现实数字平方的程序。
- 引用外部组件出错,已经全部引用该引用的了。
- 很菜的问题:键盘数据过滤中存在的问题,why出现这种情况????
- 在数据库中是数值,但想要在DataGrid中显示成有含义的文本,有什么号方法?
- 高分聘请C#高手帮助找错!
- ArrayList如何动态控制一个二维数组
2.1. A modern, object-oriented language
C# is a modern, object-oriented language that enables programmers to quickly build a wide range of applications for the new Microsoft .NET development environment, which provides tools and services that fully exploit both computing and communications.
Because of its elegant object-oriented design, C# is a great choice for architecting a wide range of components-from high-level business objects to system-level applications. Using simple C# language constructs, these components can be converted into XML Web services, allowing them to be invoked across the Internet, from any language running on any operating system.
More than anything else, C# is designed to bring rapid development to the C++ programmer without sacrificing the power and control that have been a hall of C and C++. Because of this heritage, C# has a high degree of fidelity with C and C++. Developers familiar with these languages can quickly become productive in C#.
2.2. Productivity and Safety
C# is designed to shorten cycle times and produce more incremental revisions of a program, rather than a single monumental version. The language is designed to help developers do more with fewer lines of code and fewer opportunities for error.
2.2.1. Embraces Emerging Web Programming Standards
The new model for developing applications means more and more solutions require the use of emerging Web standards like Hypertext Markup Language (HTML), Extensible Markup Language (XML), and SOAP. Existing development tools were developed before the Internet or when the Web as we know it today was in its infancy. As a result, they don't always provide the best fit for working with new Web technologies.
C# programmers can leverage an extensive framework for building Microsoft .NET-connected applications. C# includes built-in support to turn any component into an XML Web service that can be invoked over the Internet-from any application running on any platform.
Even better, the XML Web services framework can make existing XML Web services look just like native C# objects to the programmer, thus allowing developers to leverage existing XML Web services with the object-oriented programming skills they already have.
There are more subtle features that make C# a great Internet programming tool. For instance, XML is emerging as the standard way to pass structured data across the Internet. Such data sets are often very small. For improved performance, C# allows the XML data to be mapped directly into a struct data type instead of a class. This is a more efficient way to handle small amounts of data.
2.2.2. Eliminates Costly Programming Errors
Even expert C++ programmers can make the simplest of mistakes-forgetting to initialize a variable, for instance-and often those simple mistakes result in unpredictable problems that can remain undiscovered for long periods of time. Once a program is in production use, it can be very costly to fix even the simplest programming errors.
The modern design of C# eliminates the most common C++ programming errors. For example:
 Garbage collection relieves the programmer of the burden of manual memory management.
 Variables in C# are automatically initialized by the environment.
 Variables are type-safe.
2.2.3. Reduces Ongoing Development Costs with Built-in Support for Versioning
Updating software components is an error-prone task. Revisions made to the code can unintentionally change the semantics of an existing program. To assist the developer with this problem, C# includes versioning support in the language. For example, method overriding must be explicit; it cannot happen inadvertently as in C++ or Java. This helps prevent coding errors and preserve versioning flexibility. A related feature is the native support for interfaces and interface inheritance. These features enable complex frameworks to be developed and evolved over time.
Put together, these features make the process of developing later versions of a project more robust and thus reduce overall development costs for the successive versions.
2.3. Power, Expressiveness, and Flexibility
2.3.1. Better Mapping Between Business Process and Implementation
With the high level of effort that corporations spend on business planning, it is imperative to have a close connection between the abstract business process and the actual software implementation. But most language tools don't have an easy way to link business logic with code. For instance, developers probably use code comments today to identify which classes make up a particular abstract business object.
The C# language allows for typed, extensible metadata that can be applied to any object. A project architect can define domain-specific attributes and apply them to any language element-classes, interfaces, and so on. The developer then can programmatically examine the attributes on each element. This makes it easy, for example, to write an automated tool that will ensure that each class or interface is correctly identified as part of a particular abstract business object, or simply to create reports based on the domain-specific attributes of an object. The tight coupling between the custom metadata and the program code helps strengthen the connection between the intended program behavior and the actual implementation.
2.3.2. Extensive Interoperability
The managed, type-safe environment is appropriate for most enterprise applications. But real-world experience shows that some applications continue to require "native" code, either for performance reasons or to interoperate with existing application programming interfaces (APIs). Such scenarios may force developers to use C++ even when they would prefer to use a more productive development environment.
C# addresses these problems by:
 Including native support for the Component Object Model (COM) and Windows®-based APIs.
 Allowing restricted use of native pointers.
With C#, every object is automatically a COM object. Developers no longer have to explicitly implement IUnknown and other COM interfaces. Instead, those features are built in. Similarly, C# programs can natively use existing COM objects, no matter what language was used to author them.
For those developers who require it, C# includes a special feature that enables a program to call out to any native API. Inside a specially ed code block, developers are allowed to use pointers and traditional C/C++ features such as manually managed memory and pointer arithmetic. This is a huge advantage over other environments. It means that C# programmers can build on their existing C and C++ code base, rather than discard it.
In both cases-COM support and native API access-the goal is to provide the developer with essential power and control without having to leave the C# environment.
2.4. Conclusion
C# is a modern, object-oriented language that enables programmers to quickly and easily build solutions for the Microsoft .NET development environment. The framework provided allows C# components to become XML Web services that are available across the Internet, from any application running on any platform.
The language enhances developer productivity while serving to eliminate programming errors that can lead to increased development costs. C# brings rapid Web development to the C and C++ programmer while maintaining the power and flexibility that those developers call for.
http://www.csdn.net/Develop/article/15%5C15039.shtm.Net印象
http://www.freecoder.org/~phil/articles/dotnet.htmlms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpovrintroductiontonetframeworksdk.htm
http://www.powerba.com/develop/project/sample/article/20010725001.htm第三代互联网平台和微软的 .NET 战略
http://www.digitalearth.net.cn/GISRelatedITIssues/MicrosoftNet/3rdNET.htm
http://expert.csdn.net/Expert/topic/1580/1580430.xml?temp=.4567377