Microsoft.NET Programming platform for the next decade Anders Hejlsberg Distinguished Engineer Developer Division.

Slides:



Advertisements
Similar presentations
What is.Net Gary Devendorf. .Net Framework.Net framework works like the Domino Objects only much lower level and very complete It is part of the OS (or.
Advertisements

Introduction to .NET Framework
.NET Framework Overview
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
Building and Using Web Services with ASP.NET Rob Howard Program Manager.NET Framework Team Microsoft Corp.
Developing with the.NET Framework Rob Howard Program Manager.NET Framework Team Microsoft Corporation.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Introduction. What is.Net? The hype: “Microsoft.Net is a set of Microsoft software technologies for connecting information, people, systems, and devices.
.Net Overview Giuseppe Attardi Università di Pisa.
Overview of the.NET Framework. What is the.NET Framework A new computing platform designed to simplify application development A consistent object-oriented.
DEV200.NET Framework Overview Chris Anderson Software Architect,.NET Client Microsoft Corporation.
DEV345 Comparing.NET and Java David Chappell Principal Chappell & Associates
C# Language Design Peter Hallam Software Design Engineer C# Compiler Microsoft Corporation.
An Overview of.NET Gavin King.NET Developer Group Microsoft Ltd
DotNET A Developer’s Perspective Mike Litzkow University of Wisconsin - MadisonOne.
Platforms and tools for Web Services and Mobile Applications Introduction to C# Bent Thomsen Aalborg University 3rd and 4th of June 2004.
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
Copyright © 2002 OSI Software, Inc. All rights reserved..NET Experiences Chris Manhard and David Hearn OSI Software, Inc.
Rajeswari Indupuri Introduction to.NET Framework.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Overview of.NET Framework Carlotta Eaton Associate Professor of IST New River Community College Dublin, VA Slides created by Microsoft Modified by Carlotta.
CSCI 3327 Visual Basic Chapter 1: Introduction to Visual Basic
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Object Oriented Programming in C# Keith Pijanowski.Net Developer Evangelist Microsoft Corporation.
VS.NET Syllabus By Peter Huang.
Introduction to Visual Studio.NET Pradeep K. Shah
Session 1 - Introduction and Data Access Layer
Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a library for.
1 Visual Studio.NET Languages Carlotta Eaton Associate Professor of IST New River Community College Dublin, VA Slides by Microsoft.
Introduction to .NET Rui Ye.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
.NET Framework Overview
C# Overview and Features. Content I.History of C# II.Architecture III.How to install IV.Features V.Code Sample VI.Microsoft.NET Platform VII.Why use C#
MESDA Conference 2002 MESDA Annual Conference 2002 Software Development Track Java vs. C#
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
CF and.NET Working Together Using Web Services Geoff Snowman Developer Community Champion Microsoft Corporation.
.NET Language Supports. .NET Language Support Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services.
Component-Based Software Engineering Introduction to.NET Paul Krause.
.NET Framework Danish Sami UG Lead.NetFoundry
Introduction to C#. C# – The Big Ideas The first component oriented language in the C/C++ family Everything.
Rajiv and Shipra Introduction to.NET (asp.net,c#,vb)
DotNet Michelle Johnston, Firebird Services Ltd. What is Dot Net Aims to simplify web development Language independent – CLR (Common Language Runtime)
Web Services. ASP.NET Web Services  Goals of ASP.NET Web services:  To enable cross-platform, cross- business computing  Great for “service” based.
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
Introduction to C# Ali vatankhah. C# – The Big Ideas The first component oriented language in the C/C++ family The first component oriented language in.
Harsh Jegadeesan (CSD) Introduction to C#. Harsh Jegadeesan (CSD) C# – The Big Ideas The first component oriented language in the C/C++ family Everything.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
The .NET Framework - Technology in Education
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Introduction to C# Adapted from : Anders Hejlsberg, Microsoft CSCE 5013: Hot Topics in Mobile and Pervasive Computing Nilanjan Banerjee University of Arkansas.
Classes Single inheritance Single inheritance Multiple interface implementation Multiple interface implementation Class members Class members  Constants,
.NET Mobile Application Development XML Web Services.
INTRODUCTION CHAPTER #1 Visual Basic.NET. VB.Net General features It is an object oriented language  In the past VB had objects but focus was not placed.
Introduction to C# Anders Hejlsberg Distinguished Engineer Developer Division Microsoft Corporation.
July 22, 2001Introduction to.NET1 Introduction to.NET Framework Gholamali Semsarzadeh July 2001.
Introduction to the Microsoft.NET Framework Chris Wastchak Student Ambassador to Microsoft.
6.2 XML Web Services Vinod Unny Enterprise InfoTech Microsoft Regional Director, North India.
Integration with XML Web Services
Introduction to Web Services in the Microsoft .Net Framework
.NET Omid Darroudi.
The 100% Inspiration Tour.
Introduction to .NET Manuel Costa
.Net A brief introduction to
Application Foundation
Introduction to .NET By : Mr. V. D. Panchal Content :
Paul Stubbs MCSD, MCSE 4.0, MCP+I, MCT, MCAD .Net
.NET Framework Design Goals
C# – The Big Ideas The first component oriented language in the C/C++ family The first component oriented language in the C/C++ family Everything really.
Presentation transcript:

Microsoft.NET Programming platform for the next decade Anders Hejlsberg Distinguished Engineer Developer Division

Server-centric Computing Client-centric Computing XML Era Shifting decades 1980s File Sharing 1990s HTML 1970s 3270

1990GUI 1981PC A rich history 1995Internet MS-DOSBASIC Windows Visual BASIC IE, IIS Visual Studio XML Web Services 2000 Visual Studio.NET

The.NET Framework Programming platform for the next decade Natively supports XML Web Services Natively supports XML Web Services Unifies programming models Unifies programming models Dramatically simplifies development Dramatically simplifies development Provides robust execution environment Provides robust execution environment Supports multiple programming languages Supports multiple programming languages

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 VBC++C#JScript… Visual Studio.NET The.NET Framework

Unified programming models Windows API.NET Framework Consistent API availability regardless of language and programming model ASP Server based, Stateless, Projected UI MFC/ATL Subclassing, Power, Expressiveness VB Forms RAD, Composition, Delegation

Simplified development Higher level of abstraction Higher level of abstraction  No low-level COM plumbing  Object-oriented to the core Unified type system Unified type system  Everything is an object, no variants, one string type, all character data is Unicode Software components Software components  Properties, methods, events, and attributes are first class constructs Seamless interoperability Seamless interoperability

Simplified development HWND hwndMain = CreateWindowEx( 0, "MainWinClass", "Main Window", 0, "MainWinClass", "Main Window", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hInstance, NULL); (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain); Form form = new Form(); form.Text = "Main Window"; form.Show(); Windows API.NET Framework

Robust environment Automatic lifetime management Automatic lifetime management  All objects are garbage collected Exception handling Exception handling  Error handling 1 st class and mandatory Type-safety Type-safety  No unsafe casts, uninitialized variables Deployment and management Deployment and management  Assemblies, side-by-side execution  No more DLL hell!

Multi-language platform The.NET Platform is language neutral The.NET Platform is language neutral  All.NET languages are first class players  Complete cross-language integration  Highly leveraged tools Microsoft is providing Microsoft is providing  VB, C++, C#, Java, JScript Industry and academia Industry and academia  APL, COBOL, Eiffel, Fortran, Haskell, ML, Perl, Python, RPG, Scheme, Smalltalk, …

What is a Web Service? HTML == user-to-machine HTML == user-to-machine XML/SOAP == machine-to-machine XML/SOAP == machine-to-machine Leveraging the Web Leveraging the Web  Same infrastructure  Same programming model  Anyone can play Truly scalable distributed apps Truly scalable distributed apps  Stateless, loosely coupled, flexible protocol  Both Internet and Intranet

What is the foundation? Ubiquitous communication: Internet Universal data format:XML Universal type system:XSD Service interactions: SOAP Service descriptions: WSDL Service discovery: DISCO Directory of services: UDDI Simple, open, broad industry support

Discovery Let’s talk (SOAP) Let’s talk (SOAP) How does it work? HTML or XML with link to WSDL How do we talk? (WSDL) XML with service descriptions XML/SOAP BODY WebService WebServiceConsumer UDDI Find a Service Link to DISCO or WSDL document

Web Services with.NET Programs Objects Classes Methods Calls Web XML XSD WSDL SOAP Data Schema Services Invocation Application Concepts The.NET Framework provides a bi-directional mapping

public class OrderProcessor { public void SubmitOrder(PurchaseOrder order) {...} public void SubmitOrder(PurchaseOrder order) {...}} public class PurchaseOrder { public string ShipTo; public string ShipTo; public string BillTo; public string BillTo; public string Comment; public string Comment; public Item[] Items; public Item[] Items; public DateTime OrderDate; public DateTime OrderDate;} Web Services with.NET public class OrderProcessor { [WebMethod] [WebMethod] public void SubmitOrder(PurchaseOrder order) {...} public void SubmitOrder(PurchaseOrder order) {...}} [XmlRoot("Order", Namespace="urn:acme.b2b-schema.v1")] public class PurchaseOrder { [XmlElement("shipTo")] public string ShipTo; [XmlElement("shipTo")] public string ShipTo; [XmlElement("billTo")] public string BillTo; [XmlElement("billTo")] public string BillTo; [XmlElement("comment")] public string Comment; [XmlElement("comment")] public string Comment; [XmlElement("items")] public Item[] Items; [XmlElement("items")] public Item[] Items; [XmlAttribute("date")] public DateTime OrderDate; [XmlAttribute("date")] public DateTime OrderDate;} PurchaseOrder po = new PurchaseOrder(); po.ShipTo = “Anders Hejlsberg"; po.BillTo = “Bill Gates"; po.OrderDate = DateTime.Today; …OrderProcessor.SubmitOrder(order); <soap:Envelope> Anders Hejlsberg Anders Hejlsberg Bill Gates Bill Gates Overnight delivery Overnight delivery Dom Perignon Dom Perignon </soap:Envelope>

Web Services demo

The C# language Component oriented Component oriented Unified and extensible type system Unified and extensible type system Versioning Versioning Interoperability Interoperability Pragmatic language design Pragmatic language design

Components What defines a component? What defines a component?  Properties, methods, events  Integrated help and documentation  Design time and run-time attributes C# has first class support C# has first class support  Not naming patterns, adapters, etc.  Not external files Components easy to build and consume Components easy to build and consume

Components Properties are a first class construct Properties are a first class construct public class Button: Control { private string text; private string text; public string Caption { public string Caption { get { get { return text; return text; } set { set { text = value; text = value; Repaint(); Repaint(); } }} Button b = new Button(); b.Caption = "OK"; String s = b.Caption;

Unified type system Traditional views of primitive types Traditional views of primitive types  C++, Java: They’re “magic”  Smalltalk, Lisp: They’re full-blown objects C# unifies with no performance cost C# unifies with no performance cost  Deep simplicity throughout system Improved extensibility and reusability Improved extensibility and reusability  New primitive types: Decimal, SQL…  Collections, etc., work for all types

Unified type system All types ultimately inherit from object All types ultimately inherit from object Any piece of data can be stored, transported, and manipulated with no extra work Any piece of data can be stored, transported, and manipulated with no extra work Stream MemoryStreamFileStream Hashtabledoubleint object

Unified type system Boxing Boxing  Allocates box, copies value into it Unboxing Unboxing  Checks type of box, copies value out int i = 123; object o = i; int j = (int)o; 123 i o 123 System.Int j

Unified type system Benefits Benefits  Eliminates “wrapper classes”  Collection classes work with all types  Replaces OLE Automation's Variant Lots of examples in.NET Framework Lots of examples in.NET Framework string s = string.Format( "Your total was {0} on {1}", total, date); "Your total was {0} on {1}", total, date); Hashtable t = new Hashtable(); t.Add(0, "zero"); t.Add(1, "one"); t.Add(2, "two");

Versioning Overlooked in most languages Overlooked in most languages  C++ and Java produce fragile base classes Pervasive versioning considerations in C# language design Pervasive versioning considerations in C# language design  Virtual methods and overriding  Overload resolution  Explicit interface implementation  const vs. readonly fields  Defaults for accessibility and virtuality

Versioning class Derived: Base// version 1 { public virtual void Foo() { public virtual void Foo() { Console.WriteLine("Derived.Foo"); Console.WriteLine("Derived.Foo"); }} class Derived: Base// version 2a { new public virtual void Foo() { new public virtual void Foo() { Console.WriteLine("Derived.Foo"); Console.WriteLine("Derived.Foo"); }} class Derived: Base// version 2b { public override void Foo() { public override void Foo() { base.Foo(); base.Foo(); Console.WriteLine("Derived.Foo"); Console.WriteLine("Derived.Foo"); }} class Base// version 1 {} class Base // version 2 { public virtual void Foo() { public virtual void Foo() { Console.WriteLine("Base.Foo"); Console.WriteLine("Base.Foo"); }}

Interoperability C# VB.NET MC++ JScript....NET Languages COM OLE Automation XML/SOAP Dynamic Link Libraries P/Invoke and unsafe code

Pragmatic language design C++ heritage C++ heritage  Namespaces, enums, unsigned types, etc.  Have only one way to do one thing!  Don’t make me pay every day! Real-world useful constructs Real-world useful constructs  foreach, using, switch on string  decimal type for financial applications  ref and out parameters Put the fun back in coding! Put the fun back in coding!

C# and CLI standardization Work begun in September 2000 Work begun in September 2000 Active involvement by Intel, HP, IBM, Fujitsu, Plum Hall, … Active involvement by Intel, HP, IBM, Fujitsu, Plum Hall, … Technical work complete Technical work complete ECMA votes this month ECMA votes this month Fast-track to ISO Fast-track to ISO