Programming with C# and .NET.

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Introduction to ASP.NET.
Advertisements

Introduction to .NET Framework
Microsoft.NET Object Oriented Software Engineering Based on a presentation by Murat Can Ganiz.
.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.
COM vs. CORBA.
C# and Windows Programming Application Domains and Remoting.
.NET REMOTING CertSIG Tom Perkins. FUNDAMENTALS Distributed Applications Process A Process B Process C Objects can communicate across process boundaries.
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
1 Advanced Programming Topics - II Objectives:  Background  Remoting  Types of remoting  Marshalling  Farmatters  Channels.
Overview of the.NET Framework. What is the.NET Framework A new computing platform designed to simplify application development A consistent object-oriented.
C#.NET C# language. C# A modern, general-purpose object-oriented language Part of the.NET family of languages ECMA standard Based on C and C++
Communication in Distributed Systems –Part 2
ASP.NET Programming with C# and SQL Server First Edition
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
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.
Differences between C# and C++ Dr. Catherine Stringfellow Dr. Stewart Carpenter.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
A First Program Using C#
Introduction to .Net Framework
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
.NET Framework & C#.
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.
.NET Remoting Architecture. Slide 2 CITE 4420.NET Remoting Topics Remoting Boundaries Crossing the Boundaries Distributed Applications Marshalling Channels.
.NET Language Supports. .NET Language Support Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services.
.NET Framework Danish Sami UG Lead.NetFoundry
tom perkins1 XML Web Services -.NET FRAMEWORK – Part 1 CHAPTER 1.1 – 1.3.
.Net Remoting The Other RPC Architecture Doug Gregory October 27, 2003.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Object Oriented Software Development 4. C# data types, objects and references.
.NET Mobile Application Development XML Web Services.
Text Introduction to.NET Framework. CONFIDENTIAL Agenda .NET Training – Purpose  What is.NET?  Why.NET?  Advantages  Architecture  Components: CLR,
C# Fundamentals An Introduction. Before we begin How to get started writing C# – Quick tour of the dev. Environment – The current C# version is 5.0 –
METADATA IN.NET Presented By Sukumar Manduva. INTRODUCTION  What is Metadata ? Metadata is a binary information which contains the complete description.
INTRODUCTION BEGINNING C#. C# AND THE.NET RUNTIME AND LIBRARIES The C# compiler compiles and convert C# programs. NET Common Language Runtime (CLR) executes.
IS 350 Course Introduction. Slide 2 Objectives Identify the steps performed in the software development life cycle Describe selected tools used to design.
Introduction to the Microsoft.NET Framework Chris Wastchak Student Ambassador to Microsoft.
Windows Communication Foundation and Web Services
Introduction to .NET framework
Object Oriented Programming in
Introduction to .NET Framework
.NET Remoting Priyanka Bharatula.
Using Application Domains Effectively
Presentation 23 .NET Remoting Introduced
What is RMI? Remote Method Invocation
C# and the .NET Framework
Introduction to .NET Framework Ch2 – Deitel’s Book
Matt Smouse CSE775 – Distributed Objects Spring 2003
Microsoft .NET 3. Language Innovations Pan Wuming 2017.
Lecture 1 Runtime environments.
2.1. Compilers and Interpreters
CS360 Windows Programming
Knowledge Byte In this section, you will learn about:
Introduction to C# AKEEL AHMED.
Programming in C# CHAPTER 1
Keith Mulkey Senior Software Engineer SFA, Inc.
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
.NET and .NET Core 10. Enabling Contracts Pan Wuming 2017.
Introduction to .NET By : Mr. V. D. Panchal Content :
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Tonga Institute of Higher Education
Deepak Shenoy Agni Software
Keith Mulkey Senior Software Engineer SFA, Inc.
Lecture 1 Runtime environments.
DOT NET ARCHITECTURE (OR) DOT NET FRAME WORK ARCHITECTURE
Matt Smouse CSE775 – Distributed Objects Spring 2003
Matt Smouse CSE775 – Distributed Objects Spring 2003
Presentation transcript:

Programming with C# and .NET

Outline 1 Demo .NET introduction C# Programming 2 3 .NET Remoting 4

Programming with C# and .NET Demo

The Basic Idea C# is the programming language that I am long waiting for, because my bad MFC experience. Question: How to use C# to do Image Processing OpenGL Programming(3D Graphics) DirectX Programming SEE DEMO

Programming with C# and .NET .NET

Major Components CLR Common Language Runtime a runtime environment concept similar to JVM FCL Framework Class Library built on top of the CLR provide services for modern applications

Windows Operating System (Windows ME, 98, 2000, XP etc) .NET Framework Overview Applications written in J# .NET, VB .NET, or C# CLR FCL Windows Operating System (Windows ME, 98, 2000, XP etc) Windows API

MSIL Microsoft Intermediate Language a CPU independent set of instructions .NET compliant language compile into MSIL similar to Java Byte Code sometimes abbreviated as IL

.NET Visual J# .NET C# VB .NET Compile into MSIL MSIL CLR do this Linux native code Windows native code Mac OS native code Will Support soon Support now Will Support soon

Java Java Java Byte Code JVM do this Linux native code Windows native code Mac OS native code

.NET Compliant Languages Any language that can be compiled into MSIL is called a .NET compliant language APL, Pascal, Perl, Python, Scheme, Eiffel, Fortran, Java, Jscript, Haskell, COBAL, RPG, APL, Smalltalk, Component Pascal, Curriculum, Mercury, Oberon, Oz, VB .NET , C#, Visual C++ .NET, Visual J# .NET, …

MSIL Advantages Portability between OS Language Interoperability .NET compliant language are all compiled into MSIL (portable between OS) and can be further compiled into native OS machine codes by CLR Language Interoperability Different languages can communicated easily MSIL codes from different languages can be linked together to form a program

Interoperability Visual J# .NET C# VB .NET Compile into MSIL MSIL MSIL linked the MSIL codes CLR generated a single application (native code) Windows native code

Language Interoperability Rules defined in Common Type System (CTS) Common Language Specification (CLS) Cross-language development Cross-language Debugging Cross-language Exception Handling Cross-language Inheritance

Common Type System (CTS) To unify the data types Common data types play an important role in language interoperability Types can be of two types Value Type Reference Type

.NET vs. Java Runtime environment Intermediate Code Support .NET  CLR Java  JVM Intermediate Code .NET  MSIL Java  Java Byte Code Support .NET  Multiple Languages, Multiple Platform Java  Single Language, Multiple Platform

CLR Load and execute the C # program Compile the MSIL into native code use Just-in-Time (JIT) compilers Garbage Collection use Garbage Collector (GC) Security Management Exception Handling

Managed vs. Unmanaged Code executed under the control of CLR, and use the .NET Framework libraries. Unmanaged Code does not execute under the CLR It is possible for managed and unmanaged code to work together

FCL concept similar to MFC for Windows programming FCL classes are grouped by namespaces and exported by assemblies namespace similar to Java package assembly similar to .dll

FCL Some Namespaces in FCL (has hierarchy) System System.IO System.Windows.Forms System.Drawing Example: System.Windows.Forms is located in System.Windows.Forms.dll

CLR vs. CLI CLI (Common Language Infrastructure) your own CLR CLI is the rule CLR is the implementation your own CLR You can implement your own CLR according the CLI

MSIL vs. CIL CIL (Common Intermediate Language) MSIL vs. CIL CIL is the rule MSIL is the implementation your own IL You can implement your own IL according the CIL

Web Services ASP .NET .NET Remoting host on IIS server can host on any type of applications

Windows Programming so easy! Programming with C# and .NET Windows Programming so easy! C#

Anders Hejlsberg Creator of C# Turbo Pascal Delphi Anders studied engineering at the Technical University of Denmark, previously worked for Borland, now works for Microsoft.

Special features Properties Indexers Delegates and Events Operator Overloading Reflection Attributes Formatting Regular Expression

Miscellaneous features Pointer Miscellaneous features jagged array foreach loop Runtime type identification (RTTI) goto structure (not the same with C/C++)

Start Programming

1. Simple Console Program link Visual Studio .NET IDE introduction C# program overview System.Console.WriteLine(…); Build and Run C# program namespace method class

2. Rapid Application Development link 2. Rapid Application Development RAD like Visual Basic and Borland C++ Builder concise syntax as Java event-driven programming style

3. Use Assembly classes may be compiled into .exe or .dll, link classes may be compiled into .exe or .dll, such files are called assemblies and are the packaging units of C# An assembly is composed of four sections manifest type matadata program code (in MSIL format) resources used by the program

Resources used by the program Manifest contain information about the assembly itself Type matadata information about the data types used by the program Program Code stored in MSIL format Resources used by the program such as .bmp or .jpg files

4. Namespaces Namespace prevent name conflicts A namespace can be split over several files separated within the same files Namespaces can be nested

Example 1 A namespace split over several files link

Example 2 Namespaces Prevent Name Conflicts link The same class name The same method name

Example 3 Namespaces Can Be Nested link

5. Properties Question: How do you access private data in Java? Properties provide the illusion that we can use private data directly

example: Property

Example 1 link

6. Indexers An indexer allows an object to be indexed like an array example:

Example 1 link

set get

7. Delegate & Event A delegate is an object that can refer to a method A delegate can invoke instance method associated with an object static method associated with a class A delegate is similar to a function pointer in C/C++ A delegate supports Multicasting

An object that has an interest in an event registers an handler for that event When the event occurs, all registered handlers are called. Event handlers are represented by delegate. You can use event accessors to change the way the event handlers are add to or remove from the invocation list

Example 1 Call instance method link

Instance method

Example 2 Call class static method link

class static method

Example 3 Delegate supports multicasting link

Example 4 Simple Event & Delegate Demo link Class static method Delegate

8. RTTI Runtime type identification(RTTI) allows the type of an object to be determined during program execution. There are three keywords support RTTI is as typeof

Example 1 RTTI Demo link

9. Reflection System.Type is at the core of the reflection sub-system Remember using System.Reflection; Several commonly used methods defined by Type ConstructorInfo[ ] GetConstructors( ) EventInfo[ ] GetEvents FieldInfo[ ] GetFields

MethodInfo[ ] GetMethods() MemberInfo[ ] Getmembers() MethodInfo[ ] GetMethods() PropertyInfo[ ] GetProperties()

Example 1 Obtain class method link

Example 2 Obtain class constructor link

Example 3 Obtain Types from Assemblies link MyClass.cs Compile the MyClass.cs into a MyClass.dll, you need to 1. Locate the csc.exe, and set the path 2. csc /t:library MyClass.cs

Example 4 How to create and use a DLL with MS Visual Studio .NET link Step 1

2 1 3 No Main()

Step 2 2 1

10. Pointer Enable C# to use C/C++ high-performance, systems code Code must be marked as unsafe unsafe code does not execute under the full management of the CLR When a pointer points to a managed variable, it must use fixed to prevented the variable from being moved by the garbage collector.

Example 1 Simple pointer demo link

Right-click the mouse 1 3 4 2

t should be fixed in one location while p was point to &t.num Example 2 Using fixed link t should be fixed in one location while p was point to &t.num Managed object

11. The object class base class of all C# classes object is just another name for System.Object used in Boxing & Unboxing Boxing : an object reference refers to a value type Unboxing : retrieve a value from a object as a Generic Data type

Example 1 Boxing and Unboxing link

Example 2 object as a generic data type link

12. ref & out parameter passing Value Type : pass by value Reference Type : pass by reference ref & out let you pass value type by reference

Example 1 ref & out link

Example 2 swap with ref link

13. Inheritance a derived class inherits all of the variables, methods, properties, and indexers defined by the base class and add its own unique elements. Three major topics when using inheritance Data Constructor Methods Polymorphism

Example 1 Access bass class’s private data through properties link

Example 2 Calling Base Class Constructor link

Example 3 Inheritance and Name Hiding link

Example 4 Using base to access a hidden item link

Example 5 Virtual Methods and Overriding (polymorphism and dynamic binding) link

Example 6 Using sealed to prevent inheritance link

14. Interface No data members No constructors, destructors Not allow static member Class members have no implementation Many classes can implement the same interface When a class implements an interface, the class must implement the entire interface.

Class can implement more than one inter- face. The interfaces are separated with a comma. A class can inherit a base class and also implement one or more interface. In this case, the name of the base class must come first. The method that implement an interface must be declared public. Interface can be inherited

Example 1 Interface Properties link

Example 2 Interface Indexers link

Example 3 Interface can be inherited link

Example 4 Interface Polymorphism link

15. Structures A structure is similar to a class, but it is of value type. cannot inherit or be a base for other struc- tures or class (but it inherit object) can implement one or more interface can define constructors, but not destructors

However, you cannot define a default const- ructor (no parameters) can be created using new or performed the in- itialization manually. a struct was accessed directly, not through reference variable, so it saved space and got more efficiency.

Example 1 Structure Demo link

Programming with C# and .NET .NET Remoting

Outline 1 Introduction Basic Architecture Examples 2 3 Conclusion 4

Introduction

1. Basic Model Client Server Proxy 1 Remote Object 9 2 8 3 Formatter 7 4 6 Client Channel Server Channel 5

2. Calling Procedure Client Side client called the proxy. For the client, the proxy looks like the real object with the same public methods. 1 When the methods of the proxy are called, messages will be created. 2 The messages are serialized using a formatter class, and are sent into a client channel. 3 4

The client channel communicates with the server channel to transfer the message across the network. 5 Server Side The server channel sends the serialized data to a formatter. 6 The formatter deserialized the message. 7 The deserialized messages are then dispatched to the remote object. 8

3. Configuration Option SingleCall Well-known Singleton Remote Objct Client-activated

Binary Formatter SOAP HTTP Channel TCP

4. Related Technology DCOM 1 2 Java RMI 3 CORBA

Architecture & Examples

Architecture Overview Remote Objects Well-known: SingleCall vs. Singleton Client-activated Activation Server-activated object (SAO) Client-activated object (CAO) Channel TCP HTTP

Formatter Proxy Marshaling Binary SOAP Transparent Real Marshal-by-value (MBV) Marshal-by-reference (MBR)

Lease-Base Lifetime lease.RenewOnCallTime sponsor.RenewalTime Lease machanism is for long-lived objects Well-known singleton Client-activated SingleCall types do not participate in the lifetime lease system.

1. SingleCall Client Server Remote object Remote object Remote object

Did not cause the server to create a remote object each method call caused the server to create a new remote object

Server ??

Every remote method call will create a new remote object on the server SingleCall types do not participate in the lifetime lease system remote objects will automatically be garbage collected after the call complete useful when objects are required to do a finite amount of work

Example 1 programmatic configuration link

Assembly Endpoint

Example 2 with configuration file link

2. Singleton Client Server Remote object

Did not cause the server to create a remote object A remote object was created for the first method call. All of the clients will share the same remote object.

Server

The first remote method call will create a remote object on the server Multiple clients be serviced by only one remote object be careful about the concurrency and data protection problem use lease-based lifetime mechanism

3. Client-activated Client Server Remote object

Cause the server to create a remote object Did not create any more remote object

Server

Example 1 programmatic configuration link

RemoteObject Constructor Argument

Example 2 with configuration file link

4. Lease-Based Lifetime Long-lived remote objects use lease machanism for their objects lifetime Two ways to extend the lifetime Clients make remote method calls use a sponsor When the leasing time is expired, the sponsor is asked if it extends the lease.

A value is defined with RenewOnCallTime to extend the leasing time when client calls the method of the remote object The ISponsor interface defines the method Renewal( ) The class ClientSponsor provides a default implementation for ISponsor interface.

If (CurrentLeaseTime >= RenewOnCallTime) {//Do nothing} Client Server Remote object RenewOnCallTime CurrentLeaseTime If (CurrentLeaseTime >= RenewOnCallTime) {//Do nothing} else {CurrentLeaseTime= RenewOnCallTime;}

Client-activated Client Server Remote object Cause a exception Leasing time expired Cause a exception

Well-known singleton Server Client Remote object Remote object Leasing time expired Remote object Create a new remote object

Example 1 CAO lease.RenewOnCallTime link

Example 2 sponsor link

5. Marshal-By-Value Client Server a a

Marshaling means converting the object in order to send it across the network (or across processes or application domains) With MBV the object is serialized into the channel, and a copy of the object is created on the other side of the network The class must be marked with the attribute [Serializable]

Example 1 return object with MBV link

Client side

6. Marshal-By-Reference Client Server a proxy

MBR creates a proxy on the client that is used to communicate with the remote object The class must derived from MarshalByRefObject

Example 1 return object with MBR link

Server side

Conclusion

Conclusion .NET Remoting is built on a layered model, with each layer replaceable by custom code created by a developer. Therefore, new messaging, transport, and communication protocols can be implemented and plugged in as needed. Thus we can apply it to our distributed or web service system with least difficulties and at the same time have higher performance or interoperability than other technology can provide.