Traditional Architectures Java Architecture .NET Architecture

Total Page:16

File Type:pdf, Size:1020Kb

Traditional Architectures Java Architecture .NET Architecture Traditional Architectures Web Local Distributed Other Distribution and Integration applications applications applications applications Technologies GUI Network Scripts Data Other Services Services Web Access Services Libraries .NET Architecture Execution environment (Posix, Win32, ...) Operating System .NET Architecture 2 Java Architecture .NET Architecture Web Local Distributed Other Web Local Distributed Other applications applications applications applications applications applications applications applications Swing Enterprise Java Server JDBC Others Windows Enterprise ASP.NET ADO.NET Others Java Beans Pages Forms Services Standard Java Packages .NET Framework Class Library (FCL) Java Virtual Machine (JVM) Common Language Runtime (CLR) Operating System Operating System .NET Architecture 3 .NET Architecture 4 Common Language Runtime (CLR) Common Type System (CTS) All .NET applications use the CLR All the languages able to generate code The CLR is OO for the CLR make use of the CTS (the CLR It is independent from high level languages implements the CTS) heap The CLR supports: There is 2 type categories: string . A common set of data types for all languages (CTS) . Value “abcdef” . An intermediate language independent from the stack • Simple types native code (CIL) • Allocated in the stack top class A . A common format for compiled code files 41 String: (assemblies) . Reference Double: 271.6 All the software developed using the CLR is • Complex types known as managed code • Allocated in the heap • Destroyed automatically by garbage collection .NET Architecture 5 .NET Architecture 6 The CTS Value and Reference Types Object class Ref { public int x; } struct Val { public int x; } r1: x = 5 … Class ValueType x = 8 v1: x = 5 void Method ( ) { Ref r1 = new Ref( ); Interface UInt16 Single r2: Byte Int16 Val v1 = new Val( ); r1.x = 5; v2: Array Char Int32 UInt32 Double v1.x = 5; x = 5 … x = 9 UInt64 String Int64 Enum Ref r2 = r1; Val v2 = v1; r2.x = 8; Delegate Decimal Structure v2.x = 9; … Others Boolean Others } Stack Heap Reference types Value types .NET Architecture 7 .NET Architecture 8 Value and Reference Types Intermediate Code Compilation Int32: 169 Common Source Intermediate Char: A Compiler Language code (CIL) String: Hello Int16: 43 For the first time Stack Heap that a method is called Native JIT Value type code compiler Reference type Execution .NET Architecture 9 .NET Architecture 10 Execution in the CLR Application domains Class Y 1) Calls Several .NET applications can run in the a method same process (CLR) but in different Class X Method 1 7) Calls 4) Calls a a method domains Method 1 method Method 2 Class Z Method 2 Method 3 MethodMétodo 1 The domains are isolated from each other Method 3 MethodMétodo 4 Method 2 Domains can communicate using some inter process communication techniques 8) Calls next 2) Compiles 3) Replaces method . CIL code CIL by native 5) Compiles Domains can run several threads 6) Replaces code CIL code CIL by native An application can be made code CIL code JIT compiler multithreaded easily Native code .NET Architecture 11 .NET Architecture 12 Application domains Application domain and CLR App Domain App Domain 1 App Domain 2 Assembly Threads Assembly D Class X Class Y Class Z Assembly A Method 1 Method 1 Method 1 Assembly E Method 2 Method 2 Method 2 Assembly B Method 3 Method 3 App Domain 3 Method 4 Assembly C Assembly F Metadata for the Classes X, Y and Z Stack Heap Common Language Runtime Loader JIT Compiler Garbage Collector An OS process Common Language Runtime .NET Architecture 13 .NET Architecture 14 Assemblies Assemblies Class X … When we do a compilation from a high level Compiler Class Y … .NET language we create modules of managed (C#,…) Class Z … code Class X Class Y Class Z One or more modules can constitute an Manifest CIL CIL CIL assembly (one or more files) Metadata for classes X, Y and Z The modules also contain metadata describing app1.exe types, methods, fields, … Assembly A One of the assembly modules contains a manifest, describing the assembly components Class P Class Q Class R (modules) Manifest Metadata for classes P and Q Metadata for class R A private assembly gets installed by a simple copy app2.dll app3.netmodule . There is no registry entries, include files, etc. Assembly B .NET Architecture 15 .NET Architecture 16 Languages Framework Class Library (FCL) Any language capable of supporting a It is very broad well defined subset of the CLR/CTS (CLS - Accessible from any .NET language Common Language Specification) can be It’s written in C# (most of it) used as a high level .NET language It’s organized is several namespaces . One of them is the new C# language (follows closely the CTS and CLR specifications) . Base: namespace System . From Microsoft: VB.NET, C++.NET, J#, F# Contains thousands of classes, structs and JScript.NET and enums . Others: APL, COBOL, Pascal, Eiffel, Haskell, Many more thousands of methods, ML, Oberon, Perl, Python, Scheme, Smalltalk, properties and events Fortran, etc. .NET Architecture 17 .NET Architecture 18 Ports to other platforms For Linux / Solaris / Mac OS: Mono - CLR (with JIT), C# Compiler and other tools and a very substantial part of FCL Cross platform, open source, .NET development framework http://www.mono-project.com For iPhone and iPad (iOS): Xamarin.iOS – Apps with .NET and C# integrated in Xcode and UI designer http://xamarin.com/platform For Android: Xamarin.Android - .NET and C# for Android platform integrated with VS http://xamarin.com/platform .NET Architecture 19.
Recommended publications
  • NET Tutorial for Beginners
    India Community Initiative .NET Tutorial for Beginners Special thanks to the following who have put in sincere efforts to write and bring this tutorial together. Akila Manian (MVP) | Ajay Varghese (MVP) | Amit Kukreja | Anand M (MVP) | Aravind Corera (MVP) | Arvind Rangan | Balachandran | Bipin Joshi (MVP) | C S Rajagopalan | G Gokulraj | G Arun Prakash | Gurneet Singh (MVP) | Kunal Cheda (MVP) | Manish Mehta (MVP) | Narayana Rao Surapaneni (MVP) | Pradeep | Saurabh Nandu (MVP) | Shankar N.S. | Swati Panhale | Reshmi Nair Content 1. Getting Ready .......................................................................................... 4 1.1 Tracing the .NET History..............................................................................4 1.2 Flavors of .NET...........................................................................................5 1.3 Features of .NET.......................................................................................10 1.4 Installing the .NET Framework SDK.............................................................12 2. Introduction to the .NET Initiative and the .NET Platform...................... 15 2.1 Understanding the Existing Development Scenario........................................15 2.2 Challenges faced by developers..................................................................18 2.3 NET Philosophy / Where does .NET fit in? ....................................................21 2.4 Understanding the .NET Platform and its layers ............................................25 2.5
    [Show full text]
  • Dot Net Programming CLASS: TYBBA(CA) V SEM (2013 PATTERN)
    DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45 Subject: 503 : Dot Net Programming CLASS: TYBBA(CA) V SEM (2013 PATTERN) Unit 1 :Introduction to .Net Framework Introduction to .NET Framework .NET is a software framework which is designed and developed by Microsoft. The first version of the .Net framework was 1.0 which came in the year 2002. In easy words, it is a virtual machine for compiling and executing programs written in different languages like C#, VB.Net etc. It is used to develop Form-based applications, Web-based applications, and Web services. There is a variety of programming languages available on the .Net platform, VB.Net and C# being the most common ones. It is used to build applications for Windows, phone, web, etc. It provides a lot of functionalities and also supports industry standards. .NET Framework supports more than 60 programming languages in which 11 programming languages are designed and developed by Microsoft. The remaining Non-Microsoft Languages which are supported by .NET Framework but not designed and developed by Microsoft. Common Language Runtime(CLR): CLR is the basic and Virtual Machine component of the .NET Framework. It is the run-time environment in the .NET Framework that runs the codes and helps in making the development process easier by providing the various services such as remoting, thread management, type-safety, memory management, robustness, etc.. Basically, it is responsible for managing the execution of .NET programs regardless of any .NET programming language. It also helps in the management of code, as code that targets the runtime is known as the Managed Code and code doesn’t target to runtime is known as Unmanaged code.
    [Show full text]
  • INTRODUCTION to .NET FRAMEWORK NET Framework .NET Framework Is a Complete Environment That Allows Developers to Develop, Run, An
    INTRODUCTION TO .NET FRAMEWORK NET Framework .NET Framework is a complete environment that allows developers to develop, run, and deploy the following applications: Console applications Windows Forms applications Windows Presentation Foundation (WPF) applications Web applications (ASP.NET applications) Web services Windows services Service-oriented applications using Windows Communication Foundation (WCF) Workflow-enabled applications using Windows Workflow Foundation (WF) .NET Framework also enables a developer to create sharable components to be used in distributed computing architecture. NET Framework supports the object-oriented programming model for multiple languages, such as Visual Basic, Visual C#, and Visual C++. NET Framework supports multiple programming languages in a manner that allows language interoperability. This implies that each language can use the code written in some other language. The main components of .NET Framework? The following are the key components of .NET Framework: .NET Framework Class Library Common Language Runtime Dynamic Language Runtimes (DLR) Application Domains Runtime Host Common Type System Metadata and Self-Describing Components Cross-Language Interoperability .NET Framework Security Profiling Side-by-Side Execution Microsoft Intermediate Language (MSIL) The .NET Framework is shipped with compilers of all .NET programming languages to develop programs. Each .NET compiler produces an intermediate code after compiling the source code. 1 The intermediate code is common for all languages and is understandable only to .NET environment. This intermediate code is known as MSIL. IL Intermediate Language is also known as MSIL (Microsoft Intermediate Language) or CIL (Common Intermediate Language). All .NET source code is compiled to IL. IL is then converted to machine code at the point where the software is installed, or at run-time by a Just-In-Time (JIT) compiler.
    [Show full text]
  • Industrial Programming
    Industrial Programming Lecture 2: Introduction to .Net & C# Ind. Programming 1 Microsoft .Net • Microsoft .Net is Microsoft's Internet strategy. • .Net was originally called NGWS - Next Generation Windows Services. • .Net is a Internet and Web based infrastructure that will run in any browser. • .Net and Java/JVM are modern, powerful programming techniques and are equal competitors. Ind. Programming 2 .Net Vs Java/JVM • Java is a programming language designed to be run on many different platforms, and so uses a common language (Java) which has to be compiled and run on different platforms (eg. windows, mac and linux). • Microsoft, with their offering of .NET, takes on a different approach, by allowing you to program in any language (VB.Net, C#, F#) you choose, but has compilers for many different languages that generates a platform specific code (i.e. Microsoft or Windows). Ind. Programming 3 .Net vs Java Framework Ind. Programming 4 Advantages and Disadvantages of .Net • One advantage of using .Net is that you are not stuck with one language: a multi-language solution is easier to provide than with a Java. • One disadvantage is that MS has implemented .Net such that it is not nearly as portable as Java. For example, you can't use MS's .Net tools to compile an executable that will run on Linux or Solaris in addition to Windows, while you can do this with Java. Ind. Programming 5 Suitability of .Net • Java can be used to write programs for many different operating systems, and .Net can be used to make any programming language into a Windows program.
    [Show full text]
  • Dot Net Programming CLASS: TYBBA(CA) V SEM (2013 PATTERN)
    DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45 Subject: 503 : Dot Net Programming CLASS: TYBBA(CA) V SEM (2013 PATTERN) Unit 1 :Introduction to .Net Framework Introduction to .NET Framework .NET is a software framework which is designed and developed by Microsoft. The first version of the .Net framework was 1.0 which came in the year 2002. In easy words, it is a virtual machine for compiling and executing programs written in different languages like C#, VB.Net etc. It is used to develop Form-based applications, Web-based applications, and Web services. There is a variety of programming languages available on the .Net platform, VB.Net and C# being the most common ones. It is used to build applications for Windows, phone, web, etc. It provides a lot of functionalities and also supports industry standards. .NET Framework supports more than 60 programming languages in which 11 programming languages are designed and developed by Microsoft. The remaining Non-Microsoft Languages which are supported by .NET Framework but not designed and developed by Microsoft. Common Language Runtime(CLR): CLR is the basic and Virtual Machine component of the .NET Framework. It is the run-time environment in the .NET Framework that runs the codes and helps in making the development process easier by providing the various services such as remoting, thread management, type-safety, memory management, robustness, etc.. Basically, it is responsible for managing the execution of .NET programs regardless of any .NET programming language. It also helps in the management of code, as code that targets the runtime is known as the Managed Code and code doesn’t target to runtime is known as Unmanaged code.
    [Show full text]
  • Embedding Mono Code in Unmanaged Applications on GNU/Linux
    Embedding Mono code in unmanaged applications on GNU/Linux LTH School of Engineering at Campus Helsingborg Department of Computer Science Bachelor thesis: Martin Arvidsson Viktor Hermansson c Copyright Martin Arvidsson, Viktor Hermansson LTH School of Engineering Lund University Box 882 SE-251 08 Helsingborg Sweden LTH Ingenj¨orsh¨ogskolan vid Campus Helsingborg Lunds universitet Box 882 251 08 Helsingborg Printed in Sweden Media-Tryck Biblioteksdirektionen Lunds universitet Lund 2011 Abstract In today's society more and more work is carried out with the help of dif- ferent computer systems. To benefit from the data, integration between the systems is needed. Saab has developed a solution to the problem, by the name WISE. With a modular design costs can be minimized, because a new integration does not necessarily require new software, but can be achieved with configuration of an existing module. (a so-called driver). By supporting languages on a higher level than C++, development of new drivers can be speeded up to further decrease the costs. As a first step C# support was implemented with the help of C++/CLI. Such a solution is constrained to the Windows platform. To be able to meet the customers need for Linux compatibility this project was initiated, to create a wrapper driver with the help of Mono. In the report it is shown that it is fully possible to create a working embedding of C# with the Mono runtime. The documentation of the limited embedding-API is however inadequate, this resulted in us having to investigate the functionality by creating small test cases and read the source code to see how function calls behaved.
    [Show full text]
  • Bakalářská Práce Detailní Vizualizace Průběhu Funkce
    Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Detailní vizualizace průběhu funkce Plzeň, 2017 Daniel Rajf Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a výhradně s použitím citovaných pramenů. V Plzni dne 26.4.2017 Daniel Rajf, Abstract Detail function visualization The purpose of this thesis is to visually investigate precision of various implementations of mathematic functions from math.h. This thesis deals with parsing of arithmetic expressions and its visualization. The application allows visualizing even complicated arithmetic expressions. It can also compare results of the same arithmetic expressions using different implementation of math.h for computation. Arithmetic expressions are parsed using the shunting-yard algorithm. In addition, the visualization uses MPIR library for high-precision computation. The application is written in C# programming language and uses .NET Framework. Abstrakt Tato práce se zabývá porovnáváním přesností různých implementací matematických funkcí math.h, zpracováním aritmetických výrazů a jejich vizualizací. Vytvořená aplikace umožňuje vizualizovat i složitější matematické funkce. Dále umožnuje porovnávat výsledky stejných funkcí, které jsou spočítané různými algoritmy. Aritmetické výrazy jsou zpracovány pomocí algoritmu shunting-yard. Vizualizace využívá knihovnu MPIR pro výpočty s vysokou přesností. Aplikace je napsaná v jazyce C# a využívá technologii .NET Framework. Obsah 1 Úvod .....................................................................................................................
    [Show full text]
  • NET Framework Overview
    .NET Framework Overview .NET Framework, CLR, MSIL, Assemblies, CTS, etc. Svetlin Nakov Telerik Corporation www.telerik.com Table of Contents 1. What is .NET? Microsoft .NET platform architecture 2. What is .NET Framework? .NET Framework Architecture 3. Common Language Runtime (CLR) 4. Managed Code 5. Intermediate Language MSIL 6. Assemblies and Metadata 7. .NET Applications Table of Contents (2) 8. Common Language Infrastructure (CLI) and integration of different languages Common Language Specification (CLS) Common Type System (CTS) 9. Framework Class Library 10. Integrated Development Environment Visual Studio .NET Framework Microsoft's Platform for Application Development What is the .NET Platform? The .NET platform Microsoft's platform for software development Unified technology for development of almost any kind of applications GUI / Web / RIA / mobile / server / cloud / etc. .NET platform versions .NET Framework Silverlight / Windows Phone 7 .NET Compact Framework What is .NET Framework? .NET Framework An environment for developing and executing .NET applications Unified programming model, set of languages, class libraries, infrastructure, components and tools for application development Environment for controlled execution of managed code It is commonly assumed that .NET platform == .NET Framework .NET Framework Components Common Language Runtime (CLR) Environment for controlled execution of programmed code – like a virtual machine Executes .NET applications Framework Class Library (FCL) Standard class library
    [Show full text]
  • Architecture of the CORBA Component Model
    Architecture of the CORBA Component Model Overview over the .NET Common Language Infrastructure .NET § Microsoft Branding Label § .NET framework § .NET framework SDK § Common Language Infrastructure § .NET class library § Development environments § Programming Languages § Why here? – Component framework – Standardization – Distributed computing 2 .NET Framework § Portable execution environment („a new computing platform“): – supports multiple programming languages – supports multiple operating systems – alternative implementations § Common Language Infrastructure defines common type system, intermediate language – safe execution § standard library – access to local OS features (including GUI – winforms) – access to various networking technologies (core networking, ..., web services) § Standard package format (assembly) to support deployment – code signing and versioning to avoid „DLL hell“ 3 .NET Framework SDK § Development environment for developing .NET applications § C# compiler (csc[.exe]) § Class library documentation § Support tools 4 Common Language Infrastructure (CLI) § International Standard (ECMA 335, ISO 23271) § Specifies Common Language Runtime, Class Library § Multiple implementations: – .NET Framework – Shared Source CLI (SSCLI) (code name ROTOR) – GNU Mono – DotGNU 5 Common Language Runtime (CLR) § Runtime functions: – memory management (garbage collection) – thread execution – code safety verification (various degrees of trust: local or remote code) – compilation – ... § Common Type System (CTS): – self-describing code
    [Show full text]
  • NET Framework Using C# Outline
    www.logicalimagination.training 800.657.1494 .NET Framework Using C# Course #: VC-710 Duration: 4 days Prerequisites The student should be an experienced application developer or architect with a working knowledge of C#, including building simple GUIs with Windows Forms. Details This four-day course is designed to provide a sound introduction to the .NET Framework for programmers who already know the C# language and the fundamentals of Windows Forms. It is current to Visual Studio 2019, which now includes support for cross-platform development using .NET Core. The course focuses on core portions of the .NET Framework that are common across many application areas. Separate courses are available in specific areas, such as ADO.NET, XML Programming, Windows Presentation Framework, Windows Communications Framework, and ASP.NET. The course starts with an introduction to the architecture and key concepts of .NET. It then discusses class libraries, assemblies, versioning, configuration, and deployment, which constitute a major advance in the simplicity and robustness of deploying Windows applications, ending the notorious “DLL hell.” You learn important topics in the .NET programming model, including metadata, reflection, I/O, and serialization as well as the .NET programming model, covering memory management, asynchronous programming and application domains. Finally, you learn about threading, which includes an introduction to the Task Parallel Library (TPL). .NET Security, which was simplified in .NET 4.0, is introduced, including both code access security and role-based security. The interoperability of .NET with COM and with Win32 applications is discussed as well as an introduction to database programming using ADO.NET and LINQ.
    [Show full text]
  • Diplomová Práce Využití GPU Pro Paralelní Simulační Výpočty
    Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Diplomová práce Využití GPU pro paralelní simulační výpočty Plzeň, 2019 Bc. Daniel Rajf Prohlašuji, že jsem diplomovou práci vypracoval samostatně a výhradně s použitím citovaných pramenů. V Plzni dne 2.5.2019 Daniel Rajf, Abstract Utilization of GPU for Parallel Simulation Computations The purpose of this thesis is to implement road traffic simulation that uses a GPU for computations and compare simulation run time to a reference implementation that uses a CPU for computations. The created application allows generating a road network for simulation using model with cellular automaton or car following model. Also, it can compute individual steps of the simulation using a GPU or a CPU. Simulation state can be monitored using simple visualization. The application is written in C# programming language and uses .NET Framework. The application is using OpenCL technology and NOpenCL library to run computations on a GPU. Abstrakt Tato práce se zabývá implementací simulace silniční dopravy, která pro výpočty využívá jednotku GPU, a porovnáním doby běhu výpočtů simulace s referenční implementací, která pro výpočty využívá jednotku CPU. Vytvořená aplikace umožňuje vygenerovat silniční síť pro simulaci s využitím modelu s celulárním automatem nebo car following modelu a následně počítat jednotlivé kroky simulace s pomocí jednotky GPU nebo CPU. Stav simulace je možné sledovat pomocí jednoduché vizualizace. Aplikace je napsaná v jazyce C# a využívá technologii .NET Framework. Pro spouštění výpočtu na jednotce GPU se využívá technologie OpenCL a knihovna NOpenCL. Obsah 1 Úvod .......................................................................................................................... 4 2 Popis jednotek GPU ................................................................................................... 5 2.1 Historie jednotek GPU ..................................................................................
    [Show full text]
  • Overview of the .NET Framework
    7/3/2016 Overview of the .NET Framework Overview of the .NET Framework ﴿NET Framework ﴾current version. The .NET Framework is a technology that supports building and running the next generation of applications and XML Web services. The .NET Framework is designed to fulfill the following objectives: To provide a consistent object‐oriented programming environment whether object code is stored and executed locally, executed locally but Internet‐distributed, or executed remotely. To provide a code‐execution environment that minimizes software deployment and versioning conflicts. To provide a code‐execution environment that promotes safe execution of code, including code created by an unknown or semi‐trusted third party. To provide a code‐execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows‐based applications and Web‐based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code. Note For a general introduction to the .NET Framework for both users and developers, see Getting Started with the .NET Framework. To download the .NET Framework, see Installing the .NET Framework. The .NET Framework consists of the common language runtime and the .NET Framework class library. The common language runtime is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that promote security and robustness.
    [Show full text]