Windows IT Pro is the authoritative and independent resource for windows nt, windows 2000, windows 2003, windows xp. Features a collection of resources and magazines for windows IT professionals.
  
  
  Advanced Search 


January 23, 2003

.NET Framework Basics: The Relationship Between the CLS and CLR


RSS
Subscribe to Windows IT Pro | See More Development Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

In my January 9 column ".NET Framework Basics: the Common Language Runtime" ( http://www.winnetmag.com/articles/index.cfm?articleid=37657 ), I examined the role of the Common Language Runtime (CLR) in the .NET Framework and how CLR's developers intended CLR to make .NET development language-agnostic. The CLR has this capability because of the Common Language Specification (CLS), a set of rules that languages must follow for full compatibility with .NET. The CLR and the CLS are not synonymous. This column will explain the relationship between these two parts of the .NET Framework's support for language diversity.

The CLR is the runtime environment for executing .NET applications. As all runtime environments do, the CLR manages the way applications execute by providing services that the languages in which the programs are written expose. The syntax that accesses runtime environment services varies with the language, but the services themselves don't change. Not all languages can use all the functionality in the CLR because getting optimal functionality from the CLR would entail writing the languages with CLR compatibility in mind.

However, a language doesn't need to support all the features in the runtime environment. The CLS's role is to define a minimum subset of features that languages must support to work with .NET applications. For example, although the CLR supports both signed and unsigned integers, languages conforming to the CLS are required to support only signed integers. (In binary notation, an unsigned integer's most significant bit is data, not a positive or negative sign; a signed integer's most significant bit is its sign. Therefore, unsigned integers are always positive. End of digression.) The rules defined in the CLS apply to features visible outside the assembly (or, if you'll recall, equivalent to a DLL or EXE), where they're defined. For example, the CLS requires that public names--names visible outside their assembly--be case insensitive because some languages don't distinguish between FILENAME, Filename, and filename. These rules keep .NET assemblies from conflicting with one another. (For a complete list of CLS compliance rules, go to http://dotnet.di.unipi.it/EcmaSpec/PartitionI/cont10.html#_Collected_CLS_Rules_1 .)

Again, CLS compliance rules apply only to public features. Features contained within an assembly and not directly addressable by other assemblies don't have to follow these rules.

CLS-compliant languages are either consumers or extenders. Consumers can use any CLS-compliant type: They can call methods, create instances of CLS-compliant types, read and modify fields, and so forth. Extenders are consumers that can also extend base classes, define new types, and otherwise extend the framework. Of Microsoft's CLS-compliant languages, Visual Basic .NET, C#, and C++ with Managed Extensions are extenders, and JScript .NET is a consumer. Not all languages that you can use in .NET applications are, strictly speaking, .NET languages. For example, a third-party tool that creates a .NET component from a Perl class lets .NET applications call Perl modules, but Perl is neither a consumer nor an extender.

In short, the CLR defines all the capabilities available to applications and modules written for the .NET Framework. The CLS defines the set of rules to which languages must conform to work in this framework.

End of Article



Reader Comments
Short and clear.

Anonymous User May 19, 2005 (Article Rating: )


You must log on before posting a comment.

If you don't have a username & password, please register now.




Top Viewed ArticlesView all articles
Friday at PASS Europe 2006

Kevin talks about the closing day of the event and shares a funny Microsoft film. ...

Google's Browser Created Out of Fear of Microsoft

A deep fear of Microsoft drove Google to create its own Web browser, the company's cofounders implicitly admitted Tuesday, though each was careful never to mention the software giant by name. Instead, during a press conference, Google's leaders discussed ...

Escape From Yesterworld

Kevin points you to the funniest SQL Server website ever! ...


Development Whitepapers Database Professionals: Experience Profile and Need Gaps in Development and Database Tools

Related Events Check out our list of Free Email Newsletters!

.NET eBooks Configurable components: More convenient versatility than custom parts

Synthetic Lubes Protect Electrical Connections, Reduce Warranty Claims

Speeding mechanical design with Engineering Fluid Dynamics

Related .NET Resources Become a VIP member of the Windows IT Pro community!
Get it all with the VIP CD and VIP access. A $500+ value for only $279!

Subscribe to Windows IT Pro!
Solve your toughest technical problems with our experts and access 10,000 + articles online. 30% off

Monthly Online Pass - Only $5.95!
Get instant access to 10,000+ articles from Windows IT Pro Magazine!

TechNet Virtual Labs
Evaluate and test Microsoft's newest products.

Job Openings in IT


ADS BY GOOGLE SPONSORED LINKS FEATURED LINKS

IT Connections
Dive into the new Microsoft platforms and products you implement and support with the experts from Microsoft, TechNet Magazine, Windows ITPro and industry gurus. There are 70+ sessions and interactive panels with networking opportunities.

Attention User Group Leaders...
Announcing the eNews Generator—a FREE HTML e-newsletter builder for user group leaders. Build your HTML and text e-newsletters in minutes and add Windows IT Pro & SQL Server Mag articles alongside your own message!.

Master SharePoint with 3 eLearning Seminars
Learn how to build a better SharePoint infrastructure and enable powerful collaboration with MVPs Dan Holme and Michael Noel. Register today!

Get SQL Server 2008 at WinConnections
Don’t miss Microsoft Exchange and Windows Connections conferences, the premier events for Microsoft IT Professionals in Las Vegas, November 10-13. Every attendee will receive a copy of SQL Server 2008 Standard Edition with one CAL.



Order Your SQL Fundamentals CD Today!
Learn how to use SQL Server, understand Office integration techniques and dive into the essentials of SQL Express and Visual Basic with this free SQL Fundamentals CD.

Virtualization Congress Oct. 14-16 in London
Don't miss Virtualization Congress, the premiere EMEA conference dedicated to hardware, OS and application virtualization. Oct. 14-16.
Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro Windows Dev Pro IT Job Hound ITTV
IT Library Technical Resources Directory Connected Home Windows Excavator Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 Copyright © 2008 Penton Media, Inc., All rights reserved. Terms and Use | Privacy Statement | Reprints and Licensing