02 intro to programming in .net (part 2)


Published on

Published in: Technology
  • Be the first to like this

02 intro to programming in .net (part 2)

  1. 1. Part 2Introduction toProgramming in .NET
  2. 2. Learning Objectives OverviewLecturer: Jareed Eve;2 .NET Languages Different types of .NET frameworks architectures Common Language Infrastructure (CLI),Assemblies, Metadata, Security, MemoryManagement, Class Library* Framework Versions (4, 3.5, 3, 2, etc.) Common Language Runtime*, .NET Class Libraries .NET Framework Components The Common Language Runtime The Class Library
  3. 3. .NET Languages /1Lecturer: Jareed Eve;3 A# A# is a port of the Ada programming language. A# is freely distributed by the Departmentof Computer Science at the United States Air Force Academy as a service to the Adacommunity under the terms of the GNU General Public License. Ada was originally designed by a team led by Jean Ichbiah of CII Honeywell Bull undercontract to the United States Department of Defense (DoD) from 1977 to 1983 tosupersede the hundreds of programming languages then used by the DoD. C# Developed by Microsoft, C# is intended to be a simple, modern, general-purpose, object-oriented programming language. It was developed by Microsoft within its .NET initiative and later approved as a standardby Ecma and ISO. F# F# is developed by The F# Software Foundation and Microsoft An open-source, strongly typed, multi-paradigm programming language. F# is most oftenused as a cross-platform CLI language, but can also be used to generate JavaScript andGPU code. L# The language was designed by Rob Blackwell, as was its first implementation. L# .NET is a dynamic computer programming language intended to be compiled andexecuted on the Ecma-334 and Ecma-335 Common Language Infrastructure (CLI). It is adialect of Lisp, adapted from Paul Grahams proposed Arc language.
  4. 4. .NET Languages /2Lecturer: Jareed Eve;4 C++ C++/CLI (Common Language Infrastructure) is a language specificationcreated by Microsoft and intended to supersede Managed Extensionsfor C++. Boo Developed by Rodrigo B. De Oliveira, Boo is an object-oriented,statically typed, general-purpose programming language that seeks tomake use of the Common Language Infrastructures support for Unicode,internationalization, and web applications, while using a Python-inspiredsyntax and a special focus on language and compiler extensibility. Cobra Cobra is an Object Oriented language designed by Charles Esterbrook It is strongly influenced by Python,C#, Eiffel, Objective-C, and otherprogramming languages Cobra is an open-source project; it was released under the MIT Licenseon February 29, 2008. JScript .NET Developed by Microsoft, JScript has a strong foundation in MicrosoftsActiveX/COM technologies, and relies primarily on ActiveX componentsto provide much of its functionality (including database access via ADO,file handling, etc.), whereas JScript .NET uses the .NET Framework toprovide equivalent functionality.
  5. 5. .NET Languages /3Lecturer: Jareed Eve;5 IronPython, IronRuby IronPython is an implementation of the Python programming languagetargeting the .NET Framework Jim Hugunin created the project and actively contributed to it up untilVersion 1.0 which was released on September 5, 2006. Thereafter, it wasmaintained by a small team at Microsoft until the 2.7 Beta 1 release;Microsoft abandoned IronPython (and its sister project IronRuby) in late2010, after which event Hugunin left to work at Google. IronPython 2.0was released on December 10, 2008. IronRuby is an implementation of the Ruby programming languagetargeting Microsoft .NET framework Visual Basic.NET Visual Basic .NET (VB.NET) (created by Microsoft) is an object-orientedcomputer programming language that can be viewed as an evolution ofthe classic Visual Basic (VB), implemented on the .NET Framework IronLISP IronLisp was an implementation of the Lisp programming languagetargeting the Microsoft .NET framework. It was developed andannounced by Xacc.ide on July 23, 2007. No further development willtake place on IronLisp.
  6. 6. .NET Frameworks Architectures/1Lecturer: Jareed Eve;6 Common Language Infrastructure (CLI) This is an open specification developed byMicrosoft and standardized by ISO andECMA. It describes the executable code and runtimeenvironment that form the core of theMicrosoft .NET Framework and the freeand open source implementations Mono andPortable.NET. The specification defines an environmentthat allows multiple high-level languages tobe used on different computer platformswithout being rewritten for specific
  7. 7. Lecturer: Jareed Eve;7
  8. 8. .NET Frameworks Architectures/2Lecturer: Jareed Eve;8 Common Language Infrastructure (CLI) MetadataDescribes the high-level structure of the code.Metadata describes all classes and class membersthat are defined in the assembly, and the classesand class members that the current assembly willcall from another assembly. Common Language Specification (CLS)A set of base rules to which any language targetingthe CLI should conform in order to interoperate withother CLS-compliant languages. The CLS rulesdefine a subset of the Common Type System.
  9. 9. .NET Frameworks Architectures/3Lecturer: Jareed Eve;9 Common Language Infrastructure (CLI) Common Type System (CTS)A set of data types and operations that are sharedby all CTS-compliant programming languages. Virtual Execution System (VES)The VES loads and executes CLI-compatibleprograms, using the metadata to combineseparately generated pieces of code at runtime.
  10. 10. .NET Frameworks Architectures/4Lecturer: Jareed Eve;10 Common Language Infrastructure (CLI)Assembly An assembly in the Common LanguageInfrastructure (CLI) is a compiled code library usedfor deployment, versioning, and security. There are two types: process assemblies (EXE)andlibrary assemblies (DLL). A process assembly represents a process that willuse classes defined in library assemblies. CLI assemblies contain code which is generatedfrom a CLI language, and then compiled intomachine language at run time by the just-in-timecompiler. In the .NET framework implementation,this compiler is part of the Common Language
  11. 11. .NET Frameworks Architectures/5Lecturer: Jareed Eve;11 Common Language Infrastructure (CLI)Security .NET has its own security mechanism with 2 generalfeatures: Code Access Security (CAS), and Validation and verification. Code Access Security is based on evidence that isassociated with a specific assembly. Typically the evidence is the source of the assembly. Code Access Security uses evidence to determinethe permissions granted to the code. Other code candemand that calling code is granted a specifiedpermission.
  12. 12. .NET Frameworks Architectures/5Lecturer: Jareed Eve;12 Common Language Infrastructure (CLI)Memory Management Automatic memory management is one of theservices that the common language runtimeprovides. The garbage collector manages theallocation and release of memory for an application. Allocating MemoryWhen you initialize a new process, the runtimereserves a contiguous region of address space forthe process. Releasing MemoryThe garbage collectors optimizing enginedetermines the best time to perform a collectionbased on the allocations being made. When thegarbage collector performs a collection, it releases
  13. 13. .NET Frameworks Architectures/6Lecturer: Jareed Eve;13
  14. 14. Lecturer: Jareed Eve;14
  15. 15. Class LibraryLecturer: Jareed Eve;15 The .NET Framework includes a set of standard classlibraries. The class library is organized in a hierarchy ofnamespaces. Most of the built-in APIs are part ofeither System.* or Microsoft.* namespaces. These class libraries implement a large number ofcommon functions, such as file reading and writing,graphic rendering, database interaction, and XMLdocument manipulation, among others. The .NETclass libraries are available to all CLI compliantlanguages. The .NET Framework class library is divided into twoparts: the Base Class Library and the Framework Class Library
  16. 16. Common Language Runtime /1Lecturer: Jareed Eve;16 The Common Language Runtime (CLR) is thevirtual machine component of Microsofts .NETframework and is responsible for managing theexecution of .NET programs. In a process known as Just-in-time compilation, thecompiled code is converted into machine instructionsthat, in turn, are executed by the computers CPU. The CLR provides additional services includingmemory management, type safety and exceptionhandling. It provides exception handling, garbagecollection and thread management. CLR is commonto all versions of the .NET framework. The CLR is Microsofts implementation of theCommon Language Infrastructure (CLI) standard.
  17. 17. Common Language Runtime /2Lecturer: Jareed Eve;17
  18. 18. THE ENDLecturer: Jareed Eve;18
  19. 19. Lecturer: Jareed Eve;19