- Table of Contents
- .NET Book Recommendations
- What Is .NET?
- The Microsoft .NET Framework
- The Common Language Runtime (CLR), the Common Type System (CTS), and the Common Language Specification (CLS)
- .NET Framework Class Library
- Visual Studio .NET
- .NET Enterprise Servers and .NET My Services
- .NET Compliant Languages
- C#
- Visual Basic .NET (VB .NET)
- ASP.NET
- XML Web Services
- ADO.NET
- XML.NET
- Windows Forms
- Why .NET?
- Displaying Errors with the Error Provider
- COM Interoperability
- Comparing Java and .NET
- Calling Unmanaged Code
- .NET Application Security
- Code Access Security
- .NET Standards Support
- Numeric Types in the .NET Framework
- Working with Strings
- Formatting Strings
- Trimming Character Strings
- Comparing Strings in .NET 2.0
- Arrays and Collections
- Arrays as Class Members
- Sorting a Multi-Dimensional Array
- File I/O (System.IO)
- Working with File Names
- Using the File System
- Working with Files and Directories
- Monitoring the File System
- Working with Streams
- Working with Text Encodings
- Working with Date and Time
- Extending the DateTime Class
- Fun with Dates
- Exceptions
- Delegates
- Events
- Asynchronous Programming
- Asynchronous File I/O
- Timers
- Random Numbers
- Serialization
- MultiThreading (System.Threading)
- Multi-Threading Overview
- The Managed Thread Pool
- Managed Threading
- Thread Synchronization
- Synchronizing Data Access
- Trace Debugging
- Tracing in .NET 2.0
- ASP.NET Trace
- Validating User Input in ASP.NET Web Pages
- Event Logging
- Monitoring Application Performance
- Accessing the Registry
- Accessing Environment Information
- Environment Variables in .NET 2.0
- Managing Windows Forms Applications
- Working with Email
- Working with Graphics
- Animating a Background
- Working with Images
- Drawing Cycloid Curves
- Simulating the Spirograph
- Building International Web Applications
- .NET Compact Framework
- Mobile Web Development with ASP.NET
- Speech Technologies
- Microsoft MapPoint Web Service
- Working with Typed DataSets
- Using Relationships in DataSets
- DataColumn Expressions
- Playing Simple Sounds
- Playing Sounds with .NET 2.0
- Returning an Image in a Web Page
- RSS
- Best Practices Project Structure
- Best Practices Application Blocks
- The Data Access Application Block
- The Exception Management Application Block
- Best Practices — Performance
- Best Practices — Performance and Scalability
- Best Practices - Testing
- Reading the Tea Leaves, 2005
- Predictions: A Look Back at 2005, and a Look Ahead to 2006
- .NET Downloads
- Application Deployment Overview
- Application Deployment — Versioning
- Application Deployment — Version Policy
- Application Deployment — Packaging and Distribution
- .NET Remoting Overview
- A Remoting Demonstration
- Remoting Configuration
- Remoting: Lifetimes and Leases
- Remoting: Other Issues
- Attributes
- Writing Custom Attributes
- Accessing Attributes in Code
- Reflection
- Class Design: Inheritance, Interface, or Composition?
- The TriTryst Game
- Console Applications in .NET 2.0
- New File I/O Methods in .NET 2.0
- Building Projects with MSBuild
- Unmanaged Callbacks in .NET 2.0
- Timer Troubles
- Non-Rectangular Windows Forms
- Windows Forms Transparency
- 10 Things I Hate About Visual Basic
- 10 Things I Hate About C#
- Background Processing with Idle Time
- Scaling Windows Forms
- Reading and Writing Binary Data
- New Memory Management Functions in .NET 2.0
- Compatibility Between .NET 1.1 and .NET 2.0
- Managed Debugging Assistants in .NET 2.0
- XDir: A Program for Viewing Directory Sizes
- The Microsoft.VisualBasic Namespace
- Operator Overloading
- Working with GPS Data
- Hidden Visual Studio Tools
- .NET 3.0
- The .NET 2.0 Stopwatch Class
- Nullable Types
- Drawing Rotated Text
- Unsafe Code
- Other .NET Languages
- Compiler Directives
- Safe Handles
- Predictions, 2007 Edition
- New Features in C# 3.0
- Generics
- Network Client Programming
- On the Misuse of Exceptions
- Maximum Object Size in .NET
- More on Maximum Object Sizes
- Keyed Collection Memory Limitations
- Matching String Endings
- Allocating Small Data Structures
- Grumbling About Limitations
- Some Thoughts on the Nature of What We Do
- Working with Predicates in Collections
- Working with DataReaders
- Outputting XML with XmlWriter
- Writing XML Data
- Working with Compression
- Another Look at Compressed Streams
- Compressing a Very Large File
- Canonical URIs
- Constructing URIs
- Using OneWayAttribute for Remote Calls
- Selecting a Garbage Collector
- Linked List
- Linked List Application - The MRU List
- Auto-implemented Properties in C#
- The HashSet Collection
- Looking Ahead: 2018
- An Experiment in Optimization
- A Larger Integer
- Extension Methods
- Language Integrated Query (LINQ)
- Variable Length Parameter Lists
- The ReaderWriterLockSlim Synchronization Primitive
- Sorting a Text File
- Sorting a Large Text File
- Using ListView with Large Data Sets
- LINQ One-Liners
- Regular Expression Optimization
- Random File I/O
- Computing the Size of a Structure
- More on Computing Structure Sizes
- UnmanagedMemoryStream
- Dynamically Loading Code
- Building a String Table
- Delegates Versus Function Pointers
- Visual Studio Editor Features
- A Simple Profile Timer
- New Features in C# 4.0
- IEnumerator or IList?
- New Features in .NET 4.0
- Set Operations with IEnumerable and HashSet
- Using File Locks
- Extending Object Functionality
- Clearing a HashSet
- When Hash Codes Matter
- Parsing Command Line Options
- Creating a Single-Instance Program
- Asynchronous Windows Forms Events
- The BackgroundWorker Component
- Fixing a Dumb Mistake
- Thinking About Multi-Threaded Programs
- JavaScript Object Notation
- Useful .NET-related Sites
- Markov Models
- Building an Order 0 Markov Model
- Higher Order Markov Models
- Webmaster's Guide to robots.txt
- An Overview of the Parallel Extensions to .NET
- Parallel Extensions Synchronization Objects
- Thread Safe Collections
- A Bug and a Conundrum
- Another Bug and an Answer
- Task Parallel Library
- Good and Bad Ideas in C#
- Parallel LINQ
- Copying Large Files
- Replacing File.Copy
- Learning from Our Mistakes
- Symbolic Links
- There Is No Easy Fix
- Tracking Hurricanes
- Examining Hurricane Data
- Searching for Multiple Strings
- Simple JSON Processing
- Aho-Corasick String Searching New
- Writing a Web Crawler New
- Web Crawler Politeness New
- Source Control Management New
- Informit Reference Library
.NET Compliant Languages
Last updated Aug 8, 2003.
.NET-Compliant Languages
The Microsoft .NET Framework is an important component for developing, deploying, and running the next generation of Windows, web, and mobile applications and XML web services. One of the essential features of .NET is the capability of programming in multiple languages. Microsoft programming languages such as Visual Basic .NET, Visual C#, Visual J#, and Visual C++ with Managed Extensions are part of Visual Studio .NET 2003; developers can create applications using any of these languages. Along with these .NET platform programming languages, however, developers can use many other programming languages from various vendors:
ASML for .NET
AVR for .NET
Dyalog APL for .NET
F# (pronounced F sharp)
NetCOBOL for .NET
Perl for .NET
Eiffel ENViSioN 1.2 for .NET
Python for .NET
Pascal for .NET
Mercury for .NET
Mondrian for .NET
Oberon for .NET
FORTRAN for .NET
SmallTalk for .NET
Why Multiple Languages?
There are a number of advantages to offering (and using) multiple languages:
Each programming language has its own strengths and unique features: One language may be good for developing games, another for mathematical calculations. The developer can select the language that best suits the application.
With the option of using multiple languages, large systems can be split into manageable subsystems early in the design phase.
The developer can choose a programming language according to his or her strength in that language, avoiding the necessity for retraining, and leveraging existing programming language skills.
Objects written on top of the .NET Framework can work with each other regardless of the underlying programming language. In large real-time applications, developers can use different languages but eventually integrate those components into one application.
Cross-Language Compatibility
Language interoperability is the capacity of two sets of code to interact despite using different programming languages. Regardless of the language, .NET-compliant source code is converted into intermediate language (IL) code by the respective compiler, and then the IL code is converted into native code using the just-in-time (JIT) compiler at runtime. For example, if C# source code is compiled by the C# compiler, it emits only IL instructions and metadata. Because all the code on .NET ultimately is converted to IL, components written in one language can be used with those written in another language.
The following sections briefly discuss the Microsoft .NET-compliant languages.
Visual C# .NET
C# (pronounced C sharp) is a programming language with which you can build a wide range of applications that run on the .NET Framework. C# is a simple, type-safe, event-driven, component-oriented, object-oriented programming language with inherent support for encapsulation, inheritance, polymorphism, interfaces, properties, indexes, delegates, and custom attributes. With Visual C#, developers can create Windows applications, class libraries, ASP.NET web applications, ASP.NET web services, console applications, Windows services, and so on.
Visual Basic .NET
Visual Basic .NET is a powerful, complete object-oriented language with features such as inheritance, interfaces, and overloading. It also wraps additional language features such as multithreading, explicit definition of interfaces, strong type-checking, and structured exception handling. Because Visual Basic .NET is built on top of the .NET Framework and integrated with the Common Language Runtime (CLR), it provides language interoperability (for example, a Visual Basic .NET class might be derived from a C# class or vice versa); garbage collection; enhanced security; versioning support; and performance. With Visual Basic .NET, developers can create Windows applications, class libraries, ASP.NET web applications, ASP.NET web services, console applications, Windows services, and so on.
Visual C++ .NET
Visual C++ .NET is the next generation of the Visual C++ language. Visual C++ introduces Managed Extensions for C++ (which helps developers create high-performance applications) and includes a number of tools for simplifying application development. Following are a few of the tools:
Active Template Library, a set of template-based C++ classes, simplifies the development of COM objects.
ATL Server Library, a set of native C++ classes, eases the creation of web applications, web services, and other server applications.
Microsoft Foundation Classes is a set of classes that eases Windows API application development.



Account Sign In
View your cart