Tuesday, March 4, 2008

.NET Framework Library Source Code Released

Microsoft has released the source code for .Net FCL (Foundation class libraries). Now you can easily debug any method or class present in .Net Base libraries. This paves a very good way for the growth of applications and there by .Net. You wont be stuck up some where while using .net just because your application was malfunctioning because of some .Net library issue or you just want improve the way you use the library objects.

This release is only for debugging purpose and you need to configure you visual studio 2008 IDE before you can start debugging a detailed instructon on how to do this is give here

Currently you can browse and debug the C# source code for the following .NET Framework libraries

NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc

ASP.NET (System.Web, System.Web.Extensions)

Windows Forms (System.Windows.Forms)

Windows Presentation Foundation (System.Windows)

ADO.NET and XML (System.Data and System.Xml)

But this to work, needs a working internet connection and cannot be downloaded as an offline setup package. The corresponding symbols and PDB’s will be downloaded automatically during the process of debugging and will be cached in your system in a path which you specify during the configuration

Wednesday, January 30, 2008

What is .NET

What is .NET

Microsoft .NET can best be described as the initiative that will allow the Internet to be the basis of a new operating system. It frees us from the constraints of hardware by making user data available from the Internet. .NET is important to users then because it makes their information accessible across all devices. It is also important to developers because it will change the way they develop applications by allowing them to hook into Web Services. Simply put, Microsoft .NET is Microsoft's strategy for delivering software as a service." This doesn't say anything. Obviously a marketing blurb and not what I'm looking for. I don't know what they mean by making the Internet an operating system? The key to "freeing us from the constraints of hardware", "making user data available on the Internet", "making information available across all devices", and allowing developers to "hook into Web services" is just to define standard data formats and communications protocols. I think we've got that pretty much covered these days. "Delivering software as a service" sounds like a lead-in to selling software by subscription.

what Is Microsoft .NET?

Microsoft .NET is software that connects information, people, systems, and devices. It spans clients, servers, and developer tools, and consists of:* The .NET Framework programming model that enables developers to build Web-based applications, smart client applications, and XML Web services applications which expose their functionality programmatic-ally over a network using standard protocols such as SOAP and HTTP.* Developer tools, such as Microsoft Visual Studio. .NET, which provide a rapid application integrated development environment for programming with the .NET Framework.* A set of servers, including Microsoft Windows. 2000, Microsoft SQL Server?, and Microsoft BizTalk. Server, that integrates, runs, operates, and manages XML Web services and applications.* Client software, such as Windows XP, Windows CE, and Microsoft Office XP, that helps developers deliver a deep and compelling user experience across a family of devices and existing products."
OK, so it's client and server software that communicates using HTTP and SOAP. Fair enough.
There's also a definition of the ".NET Framework":
"What Is the .NET Framework? The .NET Framework is the programming model of the .NET environment for building, deploying, and running Web-based applications, smart client applications, and XML Web services. It manages much of the plumbing, enabling developers to focus on writing the business logic code for their applications. The .NET Framework includes the common language runtime and class libraries.Common Language RuntimeThe common language runtime is responsible for run time services such as language integration, security enforcement, memory, process, and thread management. In addition, it has a role at development time when features such as life-cycle management, strong type naming, cross-language exception handling, dynamic binding, and so on, reduce the amount of code that a developer must write to turn business logic into a reusable component.Class Libraries"Base classes provide standard functionality such as input/output, string manipulation, security management, network communications, thread management, text management, user interface design features, and other functions. The Microsoft ADO.NET data classes support persistent data management and include SQL classes for manipulating persistent data stores through a standard SQL interface. XML classes enable XML data manipulation and XML searching and translations. The Microsoft ASP.NET classes support the development of Web-based applications and XML Web services. The Windows Forms classes support the development of Windows-based smart client applications. Together, the class libraries provide a common, consistent development interface across all languages supported by the .NET Framework." So the CLR and Class Libraries are equivalent to the Java Virtual Machine. What does the term "smart client applications" mean? Just that the code executes on the client I guess.
ComponentsThe components of .Net that I've identified so far are listed here.
Common Language Runtime (CLR)Equivalent to the Java Virtual Machine, I guess written to free Microsoft from Sun's licensing terms.
I'm not sure if there are the same security restrictions. Microsoft normally relies on signing to avoid untrusted code running, rather than trying to enforce security on the code ("trust me, I can afford a certificate"). The little I've read so far says that security is enforced by the Internet Explorer 'security zones' feature, which is pretty coarse grained.
An interesting quote from MSDN
"Only developers writing new base class libraries that expose new kinds of resources need to work directly with the security system. Instead of all code being a potential security risk, code access security constrains this to a very small bit of code that explicitly overrides the security system." Hopefully that doesn't mean that code CAN override the security system if it wants too!


C#
One of the languages available for programming to the CLR. Looks a lot like Java from an initial look.