0% found this document useful (0 votes)
73 views23 pages

by Sarthak Gupta 1109031149 EC 4-c

The document provides an introduction to .NET. It describes .NET as Microsoft's vision for applications on the internet that offers increased robustness over classic Windows apps. It discusses that .NET is a platform that runs on top of the operating system and provides language interoperability across platforms with an emphasis on web connectivity. It also summarizes the history and development of .NET, its key elements like the framework and products, and goals of improved reliability, simplified development and deployment, and unified APIs.

Uploaded by

SarthakGupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views23 pages

by Sarthak Gupta 1109031149 EC 4-c

The document provides an introduction to .NET. It describes .NET as Microsoft's vision for applications on the internet that offers increased robustness over classic Windows apps. It discusses that .NET is a platform that runs on top of the operating system and provides language interoperability across platforms with an emphasis on web connectivity. It also summarizes the history and development of .NET, its key elements like the framework and products, and goals of improved reliability, simplified development and deployment, and unified APIs.

Uploaded by

SarthakGupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 23

Introduction

to .NET

- By
Sarthak Gupta
1109031149
EC 4-c
What is .NET?
• Microsoft’s vision of the future of
applications in the Internet age
– Increased robustness over classic Windows
apps
– New programming platform
– Built for the web
• .NET is a platform that runs on the
operating system
.NET
• Sits on top on the OS (currently all the Windows;
Linux/Unix subset also available – Mono Project)
– About 20MB download
• Provides language interoperability across
platforms
• Strong emphasis on Web connectivity, using XML
web services to connect and share data between
smart client devices, servers, and developers/users
• Platform/language independent
History
• Development began in 1998
• Beta 1 released Oct, 2000
• Beta 2 released July, 2001
• Finalized in Dec, shipping in Feb 2002
• Vista ships with .NET Framework 3.0
(Runtime)
.NET Overview
• Three main elements:
– The Framework (CLR, FCL, ASP, WinForms)
– The Products (Windows, Visual Studio, Office)
– The Services (My Services)
• Framework Goals
– Improved reliability and integrated security.
– Simplified development and deployment.
– Unified API, multi-language support.
• XML is the .NET “Meta-Language”.
• All MS server products now .NET-enabled.
.NET Framework
C#
C# VB.NET
VB.NET C++.NET
C++.NET Other
Other

Common
CommonLanguage
LanguageSpecification
Specification

Framework
FrameworkClass
ClassLibrary
Library
ASP.NET
ASP.NET Windows
WindowsForms
Forms
Web Services Web Forms Controls Drawing Visual
Visual
Studio
Studio
ASP.NET Application Services Windows Application Services .NET
.NET

ADO.NET XML Threading IO

Network Security Diagnostics Etc.

Common
CommonLanguage
LanguageRuntime
Runtime
Memory Management Common Type System Lifecycle Monitoring

Operating
OperatingSystem
System
Common Language Runtime
• A runtime provides services to executing
programs
– Standard C library, MFC, VB Runtime, JVM
• CLR provided by .NET manages the execution of
code and provides useful services
– Memory management, type system, etc.
– Services exposed through programming languages
• C# exposes more features of the CLR than other languages
(e.g. VB.NET
.NET Framework Class Library
• Framework – you can call it and it can call
you
• Large class library
– Over 2500 classes
– Major components
• Base Class: Networking, security, I/O, files, etc.
• Data and XML Classes
• Web Services/UI
• Windows UI
Framework Libraries
• Web Services
– Expose application functionalities across the Internet, in the same
way as a class expose services to other classes.
– Each Web service can function as an independent entity, and can
cooperate with one another.
– Data described by XML.
• ASP.NET
– Replacement for the Active Server Technology.
– Web Forms provide an easy way to write interactive Web
applications, much in the same way as “normal” Windows
applications.
Framework Libraries
• Provides facilities to generate Windows
GUI-based client applications easily
• Form-oriented
• Standard GUI components
– buttons, textboxes, menus, scrollbars, etc.
• Event-handling
Common Language Specification
• CLS is a set of rules that specifies features that all
languages should support
– Goal: have the .NET framework support multiple
languages
– CLS is an agreement among language designers and
class library designers about the features and usage
conventions that can be relied upon
• Example: public names should not rely on case for uniqueness
since some languages are not case sensitive
• This does not mean all languages are not case sensitive above
the CLR!
Some .NET Languages
• C# Perl
Smalltalk
• COBOL VB.NET
• Eiffel VC++.NET
• Fortran J#.NET
• Mercury Scheme
….
• Pascal
• Python
More are planned or under
• SML development
.NET vs. J2EE
• Both are similar in many ways:
– Server- and client-side model for building enterprise applications.
– Virtual machine designed to inspect, load, and execute programs in a
controlled environment.
– APIs for creating both fat- and thin-client models.
– APIs for foundation services (data access, directory, remote object calls,
sockets, forms).
– Development environment for dynamic web pages.
• J2 Enterprise Edition
– Language-Dependent & Platform-Independent
• .NET
– Language-Independent & Platform Dependent (for now)
J2EE: Language-Specific,
Platform- Independent
Person.java Linux
Linux
Java VM

Person
Java VM
bytecodes

Deploy Windows
Windows
Java VM
Company
Address bytecodes
bytecodes

Solaris
Solaris
Address.java
Java VM
Company.java
.NET: Language-Independent,
(Mostly) Platform- Specific
Person.vb (Visual Basic) Windows
Windows
CLR

Person
CLR
MSIL

Deploy Windows
Windows
CLR
Company
Address MSIL
MSIL

Others?
Others?
Address.cs (C#)
CLR
Company.cbl

(Cobol)
.NET
• .NET built into Windows; running an executable
invokes the CLR automatically instead of
explicitly invoking the JVM
• Being newer, .NET added improvements such as
native XML support, new features to CLR
• About 3 million C++ developers, 3-8 million VB
developers, around 1 million C# developers
• Today, most development and deployment is
Windows
Do you have to use Windows?
• Open source implementations of .NET
• Today there exists Ximian/Novell’s Mono, Corel's Rotor
and the Free Software Foundation's Portable .NET projects
• Rotor: the Shared Source Common Language
Infrastructure (SSCLI)
– Started as “Project 7” with Academic Microsoft Research
– With universities and programming language researchers,
developed several languages for the CLR
• Mono
– Implementation of ECMA C# and CLI for Linux
– http://www.mono-project.com
Common Language Runtime
• The CLR is at the core of the .NET platform - the
execution engine
• The CLR provides a “Managed Execution Environment”.
Manages the execution of code and provides services that
make development easier (like the JVM)
• Code that relies on COM and the Win32 API is “Un-
Managed Code” (e.g. built with Visual Studio 6.0, VB6)
• Code developed for a compiler that targets this platform is
referred to as “Managed Code” (e.g. code developed in
VB.NET … C# allows Managed and Unmanaged)
Simple Application Deployment
• Unlike COM, no “plumbing” code needed to
connect separate components
– Components can be developed in different
programming languages
• 2500 classes to reuse
• Automatic garbage collection
• Memory is managed
– Common bugs like memory leaks, buffer overruns are
not possible (if using 100% managed code)
MSIL and JIT Compilation
• Source code is compiled into MSIL (Microsoft Intermediate
Language). Similar to Java bytecodes - CPU-independent instructions
• MSIL allows for runtime type-safety and security, as well as portable
execution platforms.
• The MSIL architecture results in apps that run in one address space -
thus much less OS overhead.
• Compilers also produce “metadata” or glue that binds the code with
debuggers, browsers, etc.
– Definitions of each type in your code.
– Signatures of each type’s members.
– Members that your code references.
– Other runtime data for the CLR.
Summary
• Next we will study C#
• C# does not exist in isolation but has a close
connection with the .NET framework
• .NET
– CLR a relatively new, Java-like platform, but
multi-language
– SrcMSILJITNative Code
– .NET framework includes many class libraries

You might also like