Visual Basic (VB)
C#
APL
C++
Cobol
Component Pascal
Curriculum
Eiffel
Forth
Fortran
Haskell
Java Language
Microsoft JScript
Mercury
Mondrian
Oberon
Oz
Pascal
Perl
Python
RPG
Scheme
Small Talk
Standard ML
2. .NET Language Support
Operating System
Common Language Runtime
Base Class Library
ADO .NET and XML
ASP .NET
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
Common Language Specification
VB C++ C# J# …
VisualStudio.NET
3. .NET Language Support Overview
Common Language Runtime
Base Framework
ADO.NET: Data and XML
Web Services User Interface
VB C++ C#
ASP.NET
J# COBOL …
4. 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
5. Increased Productivity
• Simplifies mixed-language development
• RAD across the board
– Desktop
– Web
– Server
– Mobile
• End-to-end debugging support across
– Languages
– Projects
– Processes
– Machines
6. 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
8. 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
9. 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
10. Demo 1: Visual Studio .NET
Integrated Development
Environment
12. 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
13. 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
14. 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 10
‘ for loop
Next I
for (i=1;i<11;i++) {
// for loop
}
16. 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
17. 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
18. 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
20. 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
22. .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
23. 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