You can download the paper presentation from here
So what is .NET?
ïµ .NET is a platform that provides a standardized set of services.
ï¶ It’s just like Windows, except distributed over the Internet.
ï¶ It exports a common interface so that it’s programs can be run on any system that supports .NET.
ïµ A vast collection of software development technologies cobbled together into a single framework.
ïµ Microsoft’s application development platform, which enables developers to easily create windows applications, web applications, and web services using a collection of different programming languages, and without having to worry about low-level details like memory management and processor-specific instructions.
.NET Framework
ïµ A Platform for running Dot Net based application
ïµ It includes a large library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the framework.
The Core of .NET Framework: FCL & CLR
ïµ Common Language Runtime
ï¶ Garbage collection
ï¶ Language integration
ï¶ Integrated security
ïµ Framework Class Library
ï¶ Provides the core functionality:
ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML, etc.
.NET Framework
Common Language Runtime
ï¶ CLR manages code execution at runtime
ï¶ Memory management, thread management, etc.
.NET Framework
Base Class Library
ï¶ Object-oriented collection of reusable types
ï¶ Collections, I/O, Strings, …
.NET Framework
Data Access Layer
ï¶ Access relational databases
ï¶ Disconnected data model
ï¶ Work with XML
.NET Framework
ASP.NET & Windows Forms
ï¶ Create application’s front-end – Web-based user interface, Windows GUI, Web services, …
.NET Framework
Programming Languages
ï¶ Use your favorite language
.NET Framework
Common Language Specification
.NET Framework
Visual Studio .NET
.NET Framework
Standards Compliance
Code Compilation and Execution
Common Language Runtime
ïµ Manages running code – like a virtual machine
ï¶ Threading
ï¶ Memory management
ï¶ No interpreter: JIT-compiler produces native code – during the program installation or at run time
ïµ Fine-grained evidence-based security
ï¶ Code access security
ï¶ Code can be verified to guarantee type safety
ï¶ No unsafe casts, no un-initialized variables and no out-of-bounds array indexing
ï¶ Role-based security
.Net Environments
ïµ Windows Forms Application: Win Forms (for client machine based applications)
ïµ Web Application: ASP.Net (for browser based applications)
ïµ Console Application (quick and dirty apps)
ïµ Windows Mobile Applications (using the compact framework)
Windows Forms Application
ïµ You write your software to produce an executable (MyApp.exe)
ïµ User runs the executable on their local machine
ïµ User must have the .Net Framework installed locally
ïµ The application runs in local memory, typically from the local hard drive
ïµ Good:
ï¶ Fast
ï¶ Responsive
ï¶ Easy to develop for (pure event driven environment)
ï¶ Easy access to local resources (file system, system events, etc)
ï¶ No need for an internet connection
ï¶ Very rich and easy to use controls
Web Application: ASP.Net
ïµ Server: IIS (Internet Information Services) serves up webpages created by the .Net Framework
ïµ Your software only ‘runs’ on the web server – so only the web server needs the .Net Framework installed on it.
ïµ The web server serves up pages containing HTML and Javascript when requested by someone via a browser.
ïµ Events are captured as round-trips requests between the browser and the web-server.
ïµ Good:
ï¶ No Framework needed on the client machine
ï¶ Only need a browser to request those pages
ï¶ Cross platform (Windows, Mac, Linux) and cross-browser (IE, Firefox, Safari, etc)
ï¶ Wide reach anywhere with an internet connection
ï¶ Very easy to re-deploy an upgrade of your software
Console Application
ïµ Compiles very quickly into a single executable
ïµ Great for very simple applications that need no user interface
ïµ VB-script batch file for .Net
ïµ Good:
ï¶ Great for playing around and testing things while learning
ï¶ Very fast
Windows Mobile Applications
ïµ Compact Framework – different to the core framework
ïµ Same Visual Studio environment
ïµ Same .Net languages (VB.net and C#)
ïµ Good:
ï¶ Same Visual Studio and VB.Net / C# that you are used to
ï¶ Most of the Base Class Library
ï¶ All the advantages of the Windows Mobile platform
Example of MSIL Code
.method private hidebysig static void Main() cil managed
{
.entrypoint
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldstr “Hello, world!”
IL_0005: call void [mscorlib]System.Console::WriteLine(string)
IL_000a: ret
} // end of method HelloWorld::Main
.NET Languages
ïµ Languages provided by Microsoft
ï¶ C++, C#, J#, VB.NET, JScript
ïµ Third-parties languages
ï¶ Perl, Python, Pascal, APL, COBOL, Eiffel, Haskell, ML, Oberon, Scheme, Smalltalk…
ïµ Advanced multi-language features
ï¶ Cross-language inheritance and exceptions handling
ïµ Object system is built in, not bolted on
ï¶ No additional rules or API to learn
Common Language Specification (CLS)
ïµ Any language that conforms to the CLS is a .NET language
ïµ A language that conforms to the CLS has the ability to take full advantage of the Framework Class Library (FCL)
ïµ CLS is standardized by ECMA“ 11
C# Language
ïµ Mixture between C++, Java and Delphi
ïµ Component-oriented
ï¶ Properties, Methods, Events
ï¶ Attributes, XML documentation
ï¶ All in one place, no header files, IDL, etc.
ï¶ Can be embedded in ASP+ pages
ïµ Everything really is an object
ï¶ Primitive types aren’t magic
ï¶ Unified type system == Deep simplicity
ï¶ Improved extensibility and reusability
C# Language – Example
using System;
class HelloWorld
{
public static void main()
{
Console.WriteLine(“Hello, world!â€);
}
}
Assemblies
ïµ DLL or EXE file
ïµ Smallest deployable unit in the CLR
ïµ Have unique version number
ïµ No version conflicts (known as DLL hell)
ïµ Contains IL code to be executed
ïµ Security boundary – permissions are granted at the assembly level
ïµ Type boundary – all types include the assembly name they are a part of
ïµ Self-describing manifest – metadata that describes the types in the assembly
Metadata in Assembly
Applications
ïµ One or more assemblies
ïµ Assemblies conflict resolution
ï¶ Using metadata
ï¶ Local (preferred)
ï¶ Global Assembly Cache (GAC)
ïµ Different applications may use different versions of an assembly
ï¶ Easier software updates
ï¶ Easier software removal
Visual Studio .NET
ïµ Development tool that contains a rich set of productivity and debugging features
ï¶ Supports managed and unmanaged applications
ï¶ Supports C#, C++, VB.NET, …
ï¶ Many useful tools and wizards
ï¶ Windows Forms Designer
ï¶ ASP.NET Web Forms Designer
ï¶ Web Services support
ï¶ SQL Server integration with ADO.NET and XML
ïµ VS.NET is not part of the .NET Framework
ï¶ Not necessary to build or run managed code
ï¶ The .NET Framework SDK includes command line compilers
VS.NET – Single Development Environment & Skill Set
ïµ From Visual Studio.NET you can:
ï¶ Write code
ï¶ Design user interface
ï¶ Study documentation
ï¶ Debug
ï¶ Test
ï¶ Deploy
ïµ Same tools for all languages
ïµ Same tools for all platforms
Visual Studio .NET
The .NET Framework Library
.NET Framework Namespaces
Base Class Library Namespaces
Base Class Library
ïµ Data types, conversions, formatting
ïµ Collections: ArrayList, Hashtable, etc.
ïµ Globalization: Cultures, sorting, etc.
ïµ I/O: Binary and text streams, files, etc.
ïµ Networking: HTTP, TCP/IP sockets, etc.
ïµ Reflection: Metadata and IL emit
ïµ Security: Permissions, cryptography
ïµ Text: Encodings, regular expressions
Data And XML Namespaces
ADO.NET And XML
VS.NET – DataSet Designer
Windows Forms Namespaces
Windows Forms
ïµ Windows Forms is framework for building rich GUI applications
ï¶ RAD (Rapid Application Development)
ï¶ component-based
ï¶ event-driven
ï¶ Rich set of controls
ï¶ Data aware components
ï¶ ActiveX® Support
ï¶ Printing support
ï¶ Unicode support
ï¶ UI inheritance
Windows Forms
VS.NET – Windows Forms Designer
Demo
ïµ Create simple database application with:
ï¶ Windows Forms
ï¶ ADO.NET
ï¶ MS SQL Server
ï¶ Visual Studio .NET
ASP.NET Namespaces
ASP.NET
ïµ Framework for building Web applications and Web services in any .NET language
ï¶ C#, C++, VB.NET, JScript, etc.
ïµ Automatic multiple clients support
ï¶ DHTML, HTML 3.2, WML, small devices
ïµ Compilation of ASP.NET Web applications into .NET assemblies
ï¶ Cached the first time when called
ï¶ All subsequent calls use the cached version
ïµ Separation of code and content
ï¶ Developers and designers can work independently
ASP.NET
VS.NET – Web Forms Designer
Web Services
ïµ Technical definition – “A programmable application component accessible via standard Web protocolsâ€
ï¶ Built on XML and SOAP
ïµ Expose functionality from Web Sites
ï¶ Almost like component programming over the Web
ï¶ Functionality exposed using XML/HTML
ïµ Standard Web Services include
ï¶ Calendar
ï¶ MSN Passport
.NET Framework on Linux
ïµ Mono Project
ï¶ Open Source C# compiler, CLR and Framework Class Library
ï¶ Runs on various platforms and hardware:
ï¶ Linux, Unix, FreeBSD, Windows – JIT-compiler for x86
ï¶ s390, SPARC, PowerPC – interpreter for these hardware architectures
ï¶ Supports also:
ï¶ ADO.NET and XML
ï¶ Windows Forms (not fully)
ï¶ ASP.NET
ï¶ Web Services
.NET Framework on Linux (2)
ïµ Mono Project
ï¶ Runs .NET portable executables on Linux, e.g.
mono myapp.exe
ï¶ Compiles .NET applications to portable executables, e.g.
mcs myapp.cs
ï¶ The obtained .exe file can taken and run on Windows
ïµ DotGNU Portable.NET
ï¶ Build and execute .NET applications on GNU/Linux, Windows, Solaris, NetBSD, FreeBSD, and MacOS X
Summary
ïµ .NET Framework is a code execution platform – the environment which .NET programs run
ïµ .NET Framework consists of two primary parts: Common Language Runtime and .NET Class Libraries
ïµ The CLS (Common Language Specification) allows different languages to interact seamlessly.
ïµ The CTS (Common Type System) allows all languages to share base data types.
Summary (2)
ïµ .NET languages are compiled to MSIL by their respective compilers
ïµ MSIL code is compiled to machine code by the JIT compiler
ïµ All .NET languages have equal access to the FCL (Framework Class Library) which is a rich set of classes for developing software
ïµ Base Class Library is set of basic classes: Collections, I/O, Networking, Security, etc.
ïµ ADO.NET provides .NET applications with access to relational databases
Summary (3)
ïµ .NET has great XML support including: DOM, XSLT, XPath, and XSchema
ïµ Windows Forms provides GUI interface for the .NET applications
ïµ ASP.NET allows creating web interface to .NET applications
ïµ Web Services expose functionality from web sites and make it remotely accessible through standard XML-based protocols
ïµ Visual Studio .NET is powerful development IDE for all .NET languages and technologies
.NET Framework – Resources
ïµ Visit following web sites:
ï¶ .NET Framework Home Site – http://msdn.microsoft.com/netframework/
ï¶ The Microsoft .NET Framework Community – http://www.gotdotnet.com/
ï¶ ASP.NET – http://www.asp.net/
ï¶ .NET Windows Forms – http://www.windowsforms.net/
ï¶ Code Project – http://www.codeproject.net/
ï¶ Mono – Open Source .NET Framework – http://www.go-mono.org/
ï¶ Rotor – Shared Source .NET CLI – http://msdn.microsoft.com/net/sscli/
ïµ Read the news groups:
ï¶ news://msnews.microsoft.com/microsoft.public.dotnet.framework

Discussion
No comments for “Microsoft .NET Framework OverView”