net language supports. .net language support operating system common language runtime base class...

24
.NET Language Supports

Upload: monica-west

Post on 30-Dec-2015

224 views

Category:

Documents


0 download

TRANSCRIPT

.NET Language Supports

.NET Language Support

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……V

isual S

tud

io .N

ET

Visu

al S

tud

io .N

ET

.NET Language Support Overview

Common Language RuntimeCommon Language Runtime

Base FrameworkBase Framework

ADO.NET: Data and XMLADO.NET: Data and XML

Web ServicesWeb Services User InterfaceUser Interface

VBVB C++C++ C#C#

ASP.NETASP.NET

J#J# COBOLCOBOL ……

IDE & CLR

• Integrated Development Environment– Single Solution Explorer, Toolbox, and Debugger – IntelliSense® statement completion and

squigglies– Create multi-language solutions

• Common Language Runtime– Microsoft: Visual Basic®, C#, C++, J#, JScript®

– 3rd Party: APL, Cobol, Component Pascal, Eiffel, Fortran, Haskell, Mercury, Oberon, Oz, Perl, Python, RPG, Scheme, Smalltalk, Standard ML

Increased Productivity

• Simplifies mixed-language development

• RAD across the board– Desktop –Web– Server –Mobile

• End-to-end debugging support across – Languages – Projects– Processes–Machines

Language Enhancements

• Visual Basic .NET– Fully object oriented, supports free threading– Structured exception handling

• Visual C# .NET– Increased productivity for C++ developer – Component-oriented, type-safe

• Visual C++ .NET– Attribute based programming– Managed Extensions for C++

• Visual J# .NET– Java language for .NET Platform

Visual Basic .NETVisual Basic .NET

Visual Basic .NET Overview

• Modern, Powerful, True OOP– Inheritance, overloading, shadowing, delegates,

attributes, hierarchical name spaces• Robust – Strict type checking, initialize variables at

declaration, variable declaration types fixed • Consistent – Single assignment operator, parenthesis use

simplified• Simplified – Legacy constructs removed

Classes & Inheritance

• Inheritance supported– Derive from a single base class– Implicitly inherits from System.Object

• Declarable classes• Overriding

– New implementation for base class method– Overrides keyword– MyBase refers base class– Me refers current class

• Overloading– Multiple versions of a class member– Based on parameter types

Demo 1: Visual Demo 1: Visual Studio .NET Integrated Studio .NET Integrated Development Environment Development Environment

Visual C# .NET Visual C# .NET

Visual C# .NET Overview

• Strong C++ heritage– Immediately familiar to C++ and Java developers– Allows C-style memory management and pointers

• First component-oriented language in C family– Properties, methods, indexers, delegates, events– Design-time and runtime attributes

• Enables one-stop programming– No header files, IDL– Embeddable in ASP .NET

Component-Oriented

• What defines a component?– Properties, methods, events– Design-time and runtime information– Integrated help and documentation

• First class support in C#– Not naming patterns, adapters, etc.– Not external files

• Easy to build and consume

Comparison to Visual Basic

• Syntactic Differences– Visual Basic is NOT case sensitive

• In C# but not in Visual Basic– Pointers, shift operators, inline documentation– Overloaded operators, unsigned integers

• In Visual Basic but not in C#

– Select Case, Interface implementation– Dynamic arrays, modules, optional parameters

for I = 1 To 10for I = 1 To 10 ‘ ‘ for loopfor loopNext INext I

for (i=1;i<11;i++) {for (i=1;i<11;i++) {// for loop// for loop}}

Visual C++ .NETVisual C++ .NET

Visual C++ .NET Compiler & Language

• Optimizations– Whole Program Optimization– Optimized inline assembly integration– Loop unrolling heuristics

• Runtime checks– Buffer Overrun– Stack Corruption– Shortened Converts

• Attributes – domain specific programming– Radically simplifies COM+ and IDL– Integrated with .NET Framework attributes

model

Managed Extensions

• Full access to the .NET Framework from C++• It’s still C++– All enhancements are compatible extensions– Nothing from C++ has been changed or removed

• Enables incremental migration to .NET– Existing code can be recompiled as IL– Mix managed code within existing applications

• Power to drop “to the metal” when needed

Native Libraries

• MFC/ATL– Improved MFC/ATL integration– Integrated Web Service client– Windows® XP, GDI+, Crypto, NT Security,

Perfmon, Accessibility• ATL Server– ATL framework for Web Services and Web

applications– Stencil-based UI generation with integrated

XML/HTML designer• Enhanced STL– Better conformance and error messages– Significantly improved documentation

Visual J# .NET Visual J# .NET

Visual J# .NET Java-language for .NET

• Native support for XML Web services • Fully integrated with Visual Studio .NET

development environment• Full access to the .NET Framework– ASP .NET, ADO .NET, Windows Forms– Integration with >20 other languages

• Protection of existing investments– Use java language syntax on .NET– Move applications and skills forward

Java-language Support

.NET Runtime

Win32Win32

SourceSourceConverterConverter

Legacy Java Legacy Java SourceSource

BinaryBinaryConverterConverter

Java Java BinaryBinary

MSIL MSIL

Java Source Java Source targeting .NETtargeting .NET

MSIL

.NET Frameworks

Subset of JDK 1.1.4 & VJ++ 6.0 Subset of JDK 1.1.4 & VJ++ 6.0 LibrariesLibraries

.NET Extensions

• To be CLS compliant• Syntax extensions required for CLS

– ubyte– @attribute – For attaching .NET attributes

• Support for consuming .NET constructs:– Properties, Events, Delegates, Value types, Enums

Summary• .NET Language Support

– Multi-language platform, 22 supported

• Visual Basic .NET – More power, more productivity

• Visual C++ .NET– Power and flexibility for managed, native code

• Visual C# .NET– Productivity for the C developer

• Visual J# .NET– Java language support for .NET Platform

The End

….. Thank You …..