1 / 38

.NET and C#

.NET and C#. Peter Groenewegen Vrije Universiteit pgroene@few.vu.nl. . NET and C#. .NET. Part 1. Partner Apps. Partner Services. MS Apps. MS Services. User Interface. User Experience. Compound Document. Universal Canvas. File System. XML Store. APIs. Building Blocks.

tracib
Télécharger la présentation

.NET and C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET and C# Peter Groenewegen Vrije Universiteit pgroene@few.vu.nl

  2. .NET and C# .NET Part 1

  3. Partner Apps Partner Services MS Apps MS Services User Interface User Experience Compound Document Universal Canvas File System XML Store APIs Building Blocks PC and other devices PC Windows Platform .NET Platform The .NET Evolution As big a transition as from DOS to Windows

  4. Many devices WebServices Simpler programming model .NET

  5. Many Devices Intel Win32 universal runtime Winforms

  6. Intermediate Language • All languages are compiled to an intermediate language

  7. libraries libraries libraries runtime runtime runtime Intermediate Language Computer Language Intel PPC 6502

  8. Intermediate Language Computer Language libraries Intermediate Language runtime Intel PPC 6502

  9. runtime runtime runtime libraries libraries libraries Intermediate Language C# Perl Pascal libraries MSIL runtime Intel PPC 6502

  10. Common Language Runtime

  11. Many devices WebServices Simpler programming model .NET

  12. Web Services DCOM ASP SOAP ASP+, Webforms Biztalk

  13. <html> …</html> ??????? Web Services ASP

  14. Web Services Webservice Webservice Webservice Webservice

  15. Web Services DCOM location transparency does not hold on the web CORBA DCOM CORBA implementations are not compatible CORBA DCOM CORBA DCOM CORBA and DCOM are not compatible CORBA CORBA

  16. Web Services Functionality for development and management of .NET services: • Application Center 2000: Extreme reliability and scalability • Internet Security & Acceleration Server: Firewall and proxy server • Commerce Server: analyzing site usage • BizTalk Server 2000: Business process orchestration & Business-to-business document interchange using XML • SQL Server 2000: Easy-to-use database systems with native Extensible Markup Language (XML) support • Host Integration Server 2000: Integration with host systems and their data • Mobile Information 2001 Server: Integration with mobile devices

  17. Many devices WebServices Simpler programming model .NET

  18. Simpler programming model ComponentBased Java C# Cobol Object Oriented Haskell Python Perl C++ VB

  19. Simpler programming model • Cross-language implementation inheritance • Cross-language exception handling • Cross-language debugging • ASP+ pages in any language • Client-side scripts in any language • Languages include • Perl, Python, COBOL, Pascal, Oberon, ... • Haskell, Mercury, Eiffel, … • C, C++,C#, …

  20. Versioning Office 2000SP1 Leisure suit Larry The programmer was aware of a bug and thought he was smart to use the feature X.dll Version 2001 X.dll Version 1949 Salary Implementation relied on “secret” API removed in new version

  21. What else... • Free standards • XML • Performance • Backwards compatibility • Lots of code ready to use • ...

  22. Partner Apps Partner Services MS Apps MS Services User Interface User Experience Compound Document Universal Canvas File System XML Store APIs Building Blocks PC and other devices PC Windows Platform .NET Platform The .NET evolution DOS  Windows = Windows  .NET

  23. .NET and C# C# Part 2

  24. C# Not MS alternative for Java Language for programming.NET framework Which is MS alternative forJVM 

  25. Hello World using System; class Hello { static void Main() { Console.WriteLine("Hello world"); } } DEMO csc HelloWorld.cs ildasm HelloWorld.exe

  26. C# Program Structure • Namespaces • Types, namespaces • Type declarations • Classes, interfaces, structs, enums, delegates • Members • Fields,methods, constants, properties, events, indexers, operators, constructors, destructors package inner classes Java Beans void finalize ()

  27. Boxing/Unboxing • Boxing • Allocates box, copies value into it • Unboxing • Checks type of box, copies value out int i = 123; object o = i; int j = (int)o; 123 i System.Int32 o 123 123 j

  28. Value Types • Struct type • struct Point { int x, y; } • Simple type • int i; • Enums type • enum State { Off, On } Everything is really an object

  29. Refrence types • Interface type • Delegate type • Class type • Array type

  30. Unsafe code • Unsafe code • Low-level code without leaving the box • Enables unsafe casts, pointer arithmetic • Declarative pinning • fixed statement • Basically “inline C”

  31. Unsafe code class FileStream: Stream { int handle; public unsafe int Read(byte[] buffer, int index, int count) { int n = 0; fixed (byte* p = buffer) { ReadFile(handle, p + index, count, &n, null); } return n; } [dllimport("kernel32", SetLastError=true)] static extern unsafe bool ReadFile(int hFile, void* lpBuffer, int nBytesToRead, int* nBytesRead, Overlapped* lpOverlapped); }

  32. Properties • Properties are “smart fields” • Natural syntax, accessors, inlining class Borrel { private int start; public int Start {get { return start; }set { if (value < 1700 || value > 2400) Console.WriteLine(“Invalided time”); else start = value; } }} class Demo { public static Main () { Borrel b = new Borrel(); b.Start = 1745; int start = b.Start; }}

  33. Indexers • Indexers are “smart arrays” • Can be overloaded class Borrel { private Dictionary participants; public Borrel() { participants = new Dictionary(); } public bool this[String name] { get { return (participants.Contains(name) && (bool)participants[name]); } set { participants.Add(name,value); } }} class Demo { public static void Main () { Borrel b = new Borrel (); b[“Peter”] = true; Console.WriteLine(b[“Bill”]); }}

  34. Dogs Demo Thanks Roger and Eric Sessions! using System;namespace VirtualDog { public class Dog { public virtual void RollOver () { Console.WriteLine("Scratch my tummy."); Bark(); } public virtual void Bark () { Console.WriteLine("WOOF WOOF (Dog)"); } }} import VirtualDog;var d = new Dog();var m = new Mopje();d.RollOver();m.RollOver(); Imports SystemNamespace VirtualDog Public Class Mopje : Inherits Dog Public overrides Sub Bark () Console.WriteLine("WOEF WOEF (Mopje)") End Sub End ClassEnd Namespace

  35. What more? • Versioning • XML comments (Demo?) • Conditional compilation • ...

  36. References and more info • C# session by Tony Goodhew, TechEd 2000 • .NET session Eric Meijer • C# session Eric Meijer • http://www.cs.vu.nl/~pgroene/Vakken/Oop/oop.html

  37. Questions?

  38. Where do you what to go today?

More Related