Outils De Développement Pour .NET Framework

Total Page:16

File Type:pdf, Size:1020Kb

Outils De Développement Pour .NET Framework Outils de développement pour .NET Framework 8QGHU&RQVWUXFWLRQ (Q&RQVWUXFWLRQ Didier Donsez 8QLYHUVLWp-RVHSK)RXULHU *UHQREOH ,0$,0$*/65$'(/( 'LGLHU'RQVH]#LPDJIU 'LGLHU'RQVH]#LHHHRUJ Didier Donsez, 2003, Outils de développement pour 1 .NET 2 Petit rappel sur .NET et C# I .NET • Développement Multi langage • C#, C++, Java Script, Eiffel, Component Pascal, APL, Cobol, Oberon, Perl, Python, Scheme, Smalltalk, Standard ML, Haskell, Mercury, Oberon et Java/J++ • CIL (Common Intermediate Language) • CTS (Common Type System) 7 • CLI (Common Language Infrastructure) ( 1 U X R • CLR (CLI Runtime implémenté par MicroSoft) S W Q H • JIT, pré-JIT (à l’installation, ou développement) P H S S R O I H C# : le langage « Post-Java » Y p G H G • « Syncrétisation » de Java et de C++ V O L W X 2 I Standardisation ECMA (European Computer Manufacturers Association) · http://www.ecma.ch ] H V Q • ECMA-334 CLI (Format COFF, CTS, Metadata, …) R ' U H L G • ECMA-335 C# L ' 3 1RQ0LFUR6RIW .NET I Motivations • .NET sur des OS non Windows (Unix, Linux, MacOS X, …) • Implémentations libres • Outils libres I Project 7 ( 1 U • ROTOR (MicroSoft) sauf Linux (Shared Sources) X R S W Q H • Mono project (Ximian) P H S S R O H Y • DotGNU (Free Software Foundation) p G H G V O L W X 2 ] H V Q R ' U H L G L ' 4 Implémentations I MicroSoft · Commerciales · .NET CLR · Compact .NET CLR • Code partagé • « Rotor » : Shared Source CLI 7 ( 1 U 3.6 Mloc ( 10,721 fichiers) X R S W Q H KWWSPVGQPLFURVRIWFRPQHWVVFOL P H S S R • GC moins performant, JIT différent O H Y p G H • Une sous partie du Runtime (pas de WebForm, ADO, ASP.NET, …) G V O L W X 2 I Mono ] H V I Q DotGNU Portable .NET R ' U H L G L ' 5 8QGHU&RQVWUXFWLRQ Compilateurs (Q&RQVWUXFWLRQ I MicroSoft I Mono • Compilateur et JIT efficace • Peu de processeurs 7 ( 1 U X I R DotGNU S W Q H P H S • GCC Front End S R O H Y p G • Linux et dizaine d’OS H G V O L W X • Nombreux processeurs 2 ] H V Q R ' U H L G L ' 6 Outils du SDK I Assembly Generation Utility (al.exe) I Assembly Registration Utility (gac.exe) I MSIL Assembler (ilasm.exe) I MSIL Disassembler (ildasm.exe) I C++ Compiler (cl.exe) I C# Compiler (csc.exe) 7 I ( Visual Basic Compiler (vbc.exe) 1 U X R I J# Compiler (en extra) S W Q H P I H PE File Format Viewer (dumpbin.exe) S S R O H Y I Type Library Exporter (tlbexp.exe) p G H G I V O Type Library Importer (tlbimp.exe) L W X 2 I XML Schema Definition Tool (xsd.exe) ] I H Shared Name Utility (sn.exe) V Q R ' U I Web Service Utility (wsdl.exe) H L G L ' 7 Décompilateurs I MSIL Disassembler (Ildasm.exe) · a companion tool to the MSIL Assembler (Ilasm.exe). Ildasm.exe takes a portable executable (PE) file that contains Microsoft intermediate language (MSIL) code and creates a text file suitable as input to Ilasm.exe. 7 ( 1 U X R S W Q H P H S S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 'LGLHU'RQVH]2XWLOVGHGpYHORSSHPHQWSRXU1(7 D é c o m p i l a t e u r s 8 9 8QGHU&RQVWUXFWLRQ Ofuscateur (Q&RQVWUXFWLRQ I Dotfuscator · (http://www.preemptive.com/dotfuscator) 7 ( 1 U X R S W Q H P H S S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 10 8QGHU&RQVWUXFWLRQ Profilage (Q&RQVWUXFWLRQ I Identification • des points chauds (ERWWOHQHFNKRWVSRW) • des fuites mémoires … I Outils 7 ( 1 U X R S W Q H P H S S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 11 Profilage I Il existe un namespace $SSOLFDWLRQ ICorProfilerInf o 7 ( 1 U X R S W Q H 5XQWLPH 3URILOHU P H S S R O H Y p G H G V O L W X 2 ] ICorProfilerCallba H V Q R ' ck U H L G L ' 12 Génération (ou émission) dynamique de code I Motivations • AOP, Dynamic Proxy (Réseau, BD, …), … I namespace System.Reflection.Emit • Permet la contruction d’assemblies, modules, classes à la 7 ( 1 volée U X R S W Q H I Voir P H S S R O H Y • http://www.dina.dk/~sestoft/rtcg/rtcg.pdf p G H G V O L W • Rechercher Cisternino & Kennedy, Language independent X 2 program generation ] H V Q R ' U H L G L ' 13 Exemple de Génération de code (i) private static 7\SH CreateHelloWorld(AppDomain appDomain, AssemblyBuilderAccess access) { $VVHPEO\1DPH assemblyName = new AssemblyName(); assemblyName.Name= "EmittedAssembly"; // Create the dynamic assembly. $VVHPEO\%XLOGHU assembly = appDomain.DefineDynamicAssembly(assemblyName, access); 7 ( 1 U // Create a dynamic module X R S W module= assembly.DefineDynamicModule("EmittedModule"); Q 0RGXOH%XLOGHU H P H S S R O H Y // Define a public class named "HelloWorld" in the assembly. p G H G helloWorldClass = module.DefineType("HelloWorld", TypeAttributes.Public); V 7\SH%XLOGHU O L W X 2 // Define a private String field named "Greeting" in the type. ] H V Q )LHOG%XLOGHU greetingField= helloWorldClass.DefineField( R ' U H L "Greeting", typeof(String), FieldAttributes.Private); G L ' 14 Exemple de Génération de code (ii) // Create the constructor. Type[] constructorArgs = { typeof(String) }; &RQVWUXFWRU%XLOGHU constructor = helloWorldClass.DefineConstructor( MethodAttributes.Public, CallingConventions.Standard, constructorArgs); // GenerateIL for the method. The constructor calls its superclass constructor. // The constructor stores its argument in the privatefield. 7 ( 1 constructorIL= constructor.GetILGenerator(); ,/*HQHUDWRU U X R S W constructorIL. ( ); Q (PLW 2S&RGHV/GDUJB H P H S ConstructorInfo superConstructor = typeof(Object).GetConstructor(new Type[0]); S R O H Y p constructorIL.Emit(2S&RGHV&DOO, superConstructor); G H G V O constructorIL.Emit( ); L 2S&RGHV/GDUJB W X 2 constructorIL.Emit(2S&RGHV/GDUJB); ] constructorIL.Emit( , greetingField); H 2S&RGHV6WIOG V Q R ' constructorIL.Emit( ); U 2S&RGHV5HW H L G L ' 15 Exemple de Génération de code (iii) // Create the GetGreeting method. 0HWKRG%XLOGHU getGreetingMethod= helloWorldClass.DefineMethod("GetGreeting", MethodAttributes.Public, typeof(String), null); // GenerateIL for GetGreeting. ,/*HQHUDWRU methodIL= getGreetingMethod.GetILGenerator(); 7 ( methodIL.Emit(OpCodes.Ldarg_0); 1 U X R methodIL.Emit(OpCodes.Ldfld, greetingField); S W Q H P H methodIL.Emit(OpCodes.Ret); S S R O H Y p G H G V O // Bake theclass HelloWorld. L W X 2 return(helloWorldClass. ()); &UHDWH7\SH ] H } V Q R ' U H L G L ' 16 Execution I Assembly Loader I Security I Class Loader I IL to Native Compiler · Native.exe+GC Table 7 ( 1 U X R S W Q H P H S S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 17 Test I Unitaire · CLR · NUnit · ASP.NET 7 ( · NUnitWeb 1 U X R S http://kristopherjohnson.net/cgi-bin/twiki/view/KJ/NUnitWeb W Q H P H S · Web Services S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 18 Normes de programmation I C# · ??? · Style Checkers ?? I VB 7 ( 1 U X R S W Q H P H S S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 19 8QGHU&RQVWUXFWLRQ Sécurité (Q&RQVWUXFWLRQ I Gestion de certificats I Signature de code I Code sellé ?? VHDOHG non réversible I Vérifieur de code 7 I Pré-vérifieur de code ( 1 U X R S • Vérifie en autre la présence de unmanaged section W Q H P H S S R O H Y p G H G V O L W X 2 ] H V Q R ' U H L G L ' 20 Gestion de projets I Makefile • nmake (.NET SDK) I Tâches (optionnelles) ANT • Le .NET SDK doit être installé; variables d’environnement configurées • <csc> compilateur C# • <ilasm> assembleur d’IL 7 ( 1 • <WsdlToDotnet> générateur de stub/skel SOAP en C#, VB, .. U X R S W • Exemple Q H P H S • <csc optimize="true" debug="false" docFile="documentation.xml" warnLevel="4" S R O H Y unsafe="false" targetType="exe" incremental="false" definitions="RELEASE" p G H G excludes="src/unicode_class.cs" V O L W X mainClass = "MainApp" destFile="NetApp.exe" /> 2 I NAnt (http://nant.sourceforge.net/) ] H V Q R · Un portage de ANT sur .NET ' U H L G L ' 21 Convertisseurs Java vers C# / .NET I Aztec J2CS, ArtinSoft JLCA, DotNetJ, … I Microsoft JCLA (Java Language Conversion Assistant) · Assistant pour VisualStudio .NET de Convertion · Java ou J++ vers J# ou C# 90 % de appels au JDK 1.1.4 convertis 7 ( -DYDWHFKQRORJ\ 8SJUDGHWR- 8SJUDGHWR& 1 U X R S W Q H Java language Java language C# language P H S S R Applet Not converted Windows Form control O H Y p G H G JavaBean JavaBean C# class V O L W X 2 AWT frame AWT frame Windows Form ] WFC Form WFC Form Windows Form H V Q R ' Compiled library Compiled library Not converted U H L G L ' Resource file ResXfile ResXfile 22 Migration J2EE vers .NET I J2EE I .NET · Servlets, JSP · ASP .NET · EJB · Session Bean · Entity Bean 7 CMP ( 1 U BMP X R S W Q H • JDBC P H S · ADO .NET S R O H Y p · Transact SQL G H • Procédures Stockés G V O L W X · Oracle PL/SQL, ¼ 2 · Web Services ] H V Q R ' U H L G L ' 23 Ateliers (CASE) I MicroSoft VisualStudio .NET I MicroSoft WebMatrix • Gratuit (intègre Cassini (Web Server) • Pas de complétion au codage ! 7 ( 1 U X R S W Q H P H I S Eclipse + plugin S R O H Y p G H G V O L W X 2 I Autres (Inprise ??) ] H V Q R ' U H L G L ' 24 Mono Project (Ximian) KWWSZZZJRPRQRFRP I Motivation • Effort pour créer une version libre de .NET Framework.
Recommended publications
  • IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002
    © November 2015 | IJIRT | Volume 2 Issue 6 | ISSN: 2349-6002 .Net Surbhi Bhardwaj Dronacharya College of Engineering Khentawas, Haryana INTRODUCTION as smartphones. Additionally, .NET Micro .NET Framework (pronounced dot net) is Framework is targeted at severely resource- a software framework developed by Microsoft that constrained devices. runs primarily on Microsoft Windows. It includes a large class library known as Framework Class Library (FCL) and provides language WHAT IS THE .NET FRAMEWORK? interoperability(each language can use code written The .NET Framework is a new and revolutionary in other languages) across several programming platform created by Microsoft for languages. Programs written for .NET Framework developingapplications. execute in a software environment (as contrasted to hardware environment), known as Common It is a platform for application developers. Language Runtime (CLR), an application virtual It is a Framework that supports Multiple machine that provides services such as Language and Cross language integration. security, memory management, and exception handling. FCL and CLR together constitute .NET IT has IDE (Integrated Development Framework. Environment). FCL provides user interface, data access, database Framework is a set of utilities or can say connectivity, cryptography, web building blocks of your application system. application development, numeric algorithms, .NET Framework provides GUI in a GUI and network communications. Programmers manner. produce software by combining their own source code with .NET Framework and other libraries. .NET is a platform independent but with .NET Framework is intended to be used by most new help of Mono Compilation System (MCS). applications created for the Windows platform. MCS is a middle level interface. Microsoft also produces an integrated development .NET Framework provides interoperability environment largely for .NET software called Visual between languages i.e.
    [Show full text]
  • NET Framework
    Advanced Windows Programming .NET Framework based on: A. Troelsen, Pro C# 2005 and .NET 2.0 Platform, 3rd Ed., 2005, Apress J. Richter, Applied .NET Frameworks Programming, 2002, MS Press D. Watkins et al., Programming in the .NET Environment, 2002, Addison Wesley T. Thai, H. Lam, .NET Framework Essentials, 2001, O’Reilly D. Beyer, C# COM+ Programming, M&T Books, 2001, chapter 1 Krzysztof Mossakowski Faculty of Mathematics and Information Science http://www.mini.pw.edu.pl/~mossakow Advanced Windows Programming .NET Framework - 2 Contents The most important features of .NET Assemblies Metadata Common Type System Common Intermediate Language Common Language Runtime Deploying .NET Runtime Garbage Collection Serialization Krzysztof Mossakowski Faculty of Mathematics and Information Science http://www.mini.pw.edu.pl/~mossakow Advanced Windows Programming .NET Framework - 3 .NET Benefits In comparison with previous Microsoft’s technologies: Consistent programming model – common OO programming model Simplified programming model – no error codes, GUIDs, IUnknown, etc. Run once, run always – no "DLL hell" Simplified deployment – easy to use installation projects Wide platform reach Programming language integration Simplified code reuse Automatic memory management (garbage collection) Type-safe verification Rich debugging support – CLR debugging, language independent Consistent method failure paradigm – exceptions Security – code access security Interoperability – using existing COM components, calling Win32 functions Krzysztof
    [Show full text]
  • Programming with Windows Forms
    A P P E N D I X A ■ ■ ■ Programming with Windows Forms Since the release of the .NET platform (circa 2001), the base class libraries have included a particular API named Windows Forms, represented primarily by the System.Windows.Forms.dll assembly. The Windows Forms toolkit provides the types necessary to build desktop graphical user interfaces (GUIs), create custom controls, manage resources (e.g., string tables and icons), and perform other desktop- centric programming tasks. In addition, a separate API named GDI+ (represented by the System.Drawing.dll assembly) provides additional types that allow programmers to generate 2D graphics, interact with networked printers, and manipulate image data. The Windows Forms (and GDI+) APIs remain alive and well within the .NET 4.0 platform, and they will exist within the base class library for quite some time (arguably forever). However, Microsoft has shipped a brand new GUI toolkit called Windows Presentation Foundation (WPF) since the release of .NET 3.0. As you saw in Chapters 27-31, WPF provides a massive amount of horsepower that you can use to build bleeding-edge user interfaces, and it has become the preferred desktop API for today’s .NET graphical user interfaces. The point of this appendix, however, is to provide a tour of the traditional Windows Forms API. One reason it is helpful to understand the original programming model: you can find many existing Windows Forms applications out there that will need to be maintained for some time to come. Also, many desktop GUIs simply might not require the horsepower offered by WPF.
    [Show full text]
  • Diploma Thesis
    Faculty of Computer Science Chair for Real Time Systems Diploma Thesis Porting DotGNU to Embedded Linux Author: Alexander Stein Supervisor: Jun.-Prof. Dr.-Ing. Robert Baumgartl Dipl.-Ing. Ronald Sieber Date of Submission: May 15, 2008 Alexander Stein Porting DotGNU to Embedded Linux Diploma Thesis, Chemnitz University of Technology, 2008 Abstract Programming PLC systems is limited by the provided libraries. In contrary, hardware-near programming needs bigger eorts in e. g. initializing the hardware. This work oers a foundation to combine advantages of both development sides. Therefore, Portable.NET from the DotGNU project has been used, which is an im- plementation of CLI, better known as .NET. The target system is the PLCcore- 5484 microcontroller board, developed by SYS TEC electronic GmbH. Built upon the porting, two variants to use interrupt routines withing the Portabe.NET runtime environment have been analyzed. Finally, the reaction times to occuring interrupt events have been examined and compared. Die Programmierung für SPS-Systeme ist durch die gegebenen Bibliotheken beschränkt, während hardwarenahe Programmierung einen gröÿeren Aufwand durch z.B. Initialisierungen hat. Diese Arbeit bietet eine Grundlage, um die Vorteile bei- der Entwicklungsseiten zu kombinieren. Dafür wurde Portable.NET des DotGNU- Projekts, eine Implementierung des CLI, bekannter unter dem Namen .NET, be- nutzt. Das Zielsystem ist das PLCcore-5484 Mikrocontrollerboard der SYS TEC electronic GmbH. Aufbauend auf der Portierung wurden zwei Varianten zur Ein- bindung von Interrupt-Routinen in die Portable.NET Laufzeitumgebung untersucht. Abschlieÿend wurden die Reaktionszeiten zu eintretenden Interrupts analysiert und verglichen. Acknowledgements I would like to thank some persons who had inuence and supported me in my work.
    [Show full text]
  • Comparative Studies of Six Programming Languages
    Comparative Studies of Six Programming Languages Zakaria Alomari Oualid El Halimi Kaushik Sivaprasad Chitrang Pandit Concordia University Concordia University Concordia University Concordia University Montreal, Canada Montreal, Canada Montreal, Canada Montreal, Canada [email protected] [email protected] [email protected] [email protected] Abstract Comparison of programming languages is a common topic of discussion among software engineers. Multiple programming languages are designed, specified, and implemented every year in order to keep up with the changing programming paradigms, hardware evolution, etc. In this paper we present a comparative study between six programming languages: C++, PHP, C#, Java, Python, VB ; These languages are compared under the characteristics of reusability, reliability, portability, availability of compilers and tools, readability, efficiency, familiarity and expressiveness. 1. Introduction: Programming languages are fascinating and interesting field of study. Computer scientists tend to create new programming language. Thousand different languages have been created in the last few years. Some languages enjoy wide popularity and others introduce new features. Each language has its advantages and drawbacks. The present work provides a comparison of various properties, paradigms, and features used by a couple of popular programming languages: C++, PHP, C#, Java, Python, VB. With these variety of languages and their widespread use, software designer and programmers should to be aware
    [Show full text]
  • J2EE and .Net Security
    J2EE and .Net security 1. Introduction 1.1. Document Revision History Author Document Last Modified Note Version Date Ger Mulcahy 1.2 12/02/2002 Third draft Ger Mulcahy 1.1 01/02/2002 Added information on JAAS, JSSE, Project Liberty, DotGNU, etc. Ger Mulcahy 1.0 21/01/2002 Second Draft – added contributors Ger Mulcahy 0.1 04/01/2002 First draft 1.1.1. Contributors My thanks to the following for their assistance with this article: Alan Danziger, Mark Curphey, Alan Faber, Elias Levy, Tony Northrup 1.2. Overview A number of general comparative articles have been written discussing the pros and cons of these two competing technological platforms. The intention of this paper is to discuss J2EE and .Net at a high level from a security perspective, examining the tools and methodologies the platforms use to provide secure development and deployment environments. This introduction section covers a brief, incomplete discussion of key features of both platforms. It will not discuss areas that are not analogous between platforms. For more information on both, see the references section of this document. Note that .Net is a product platform, whereas J2EE is a standard specification, which is implemented to varying degrees of fidelity by a number of vendors. For this reason, direct comparisons may be difficult in certain areas without going into vendor specifics. For the purposes of this article no real distinction is made between .Net and the .Net Framework, which forms one part of the .Net strategy. While Microsoft is pushing .Net as their strategy for Web Services, this document will not discuss the two platforms from the point of view of Web Services, nor does it describe COM+, as this is not part of the .Net Framework.
    [Show full text]
  • Reiter István
    Reiter István C# 2009, 0.91 verzió 2 Tartalomjegyzék 1. Bevezet ő…………………………………………………………………………….......8 1.1. A jegyzet jelölései…………………………………………………………………8 1.2. Jogi feltételek………………………………………………………………………8 2. Microsoft .NET Framework…………………………………………………………...9 2.1. A .NET platform…………………………………………………………………….9 2.1.1. MSIL/CIL……………………………………………………………………...9 2.1.2. Fordítás/futtatás…………………………………………………………….9 2.1.3. BCL. …………………………………………………………………………10 2.2. A C# programozási nyelv……………………………………………………….10 2.3. Alternatív megoldások…………………………………………………………10 2.3.1. SSCLI………………………………………………………………………10 2.3.2. Mono…………………………………………………………………………10 2.3.3. DotGNU……………………………………………………………………..10 3. Fejleszt ői környezetek………………………………………………………………..12 3.1. Microsoft Visual Studio…………………………………………………………12 3.2. SharpDevelop…………………………………………………………………….13 3.3. MonoDevelop……………………………………………………………………..14 4. “Hello C#!”……………………………………………………………………………..16 4.1. A C# szintaktikája………………………………………………………………..17 4.1.1. Kulcsszavak……………………………………………………………….17 4.1.2. Megjegyzések……………………………………………………………..18 4.2. Névterek…………………………………………………………………………...18 5. Változók………………………………………………………………………………...20 5.1. Típusok…………………………………………………………………………….20 5.2. Lokális változók………………………………………………………………….21 5.3. Referencia- és értéktípusok……………………………………………………21 5.4. Boxing és Unboxing…………………………………………………………….22 5.5. Konstansok……………………………………………………………………….23 5.6. A felsorolt típus…………………………………………………………………..23 5.7. Null típusok………………………………………………………………………..24 6. Operátorok……………………………………………………………………………..25 6.1.
    [Show full text]
  • C# Essentials
    C# Essentials C# 4.0 Essentials 2 C# Essentials C# 4.0 Essentials – Version 1.04 © 2010 Payload Media. This eBook is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights reserved. The content of this book is provided for informational purposes only. Neither the publisher nor the author offers any warranties or representation, express or implied, with regard to the accuracy of information contained in this book, nor do they accept any liability for any loss or damage arising from any errors or omissions. Find more technology eBooks at www.ebookfrenzy.com 3 C# Essentials Table of Contents Chapter 1. About C# Essentials ................................................................................................. 12 Chapter 2. The C# Language and Environment ........................................................................ 13 2.1 A Brief History of Computer Programming Languages .................................................. 13 2.2 What exactly is C#? ........................................................................................................ 14 2.3 The Common Language Infrastructure (CLI) .................................................................. 14 2.4 Common Intermediate Language (CIL) .......................................................................... 15 2.5 Virtual Execution System (VES) ...................................................................................... 15 2.6 Common Type System (CTS) & Common Language Specification
    [Show full text]
  • Jacil Technical Report
    JaCIL: A CLI to JVM Compiler Technical Report Almann T. Goo [email protected] Rochester Institute of Technology Department of Computer Science July 25, 2006 Abstract Both the .NET Framework via the Common Language Infrastructure (CLI) [15] and the Java Virtual Machine (JVM) [14] provide a managed, virtual exe- cution environment for running high-level virtual machine code. As these two platforms become ubiquitous, it is of pragmatic and academic interest to have the capability of running CLI code on the JVM and vice-versa. This report describes JaCIL (pronounced “jackal”), a project that implements a CLI assembly to JVM class file byte-code compiler framework. Also pro- vided by JaCIL, is a user-land tool interfacing this framework, and a run- time library to support translated code. Contents 1 Introduction 11 1.1 The Java Virtual Machine ..................... 11 1.2 The Common Language Infrastructure .............. 12 1.3 Related Work ............................. 13 1.3.1 Previous Translation Efforts and Platform Comparisons 13 1.3.2 IKVM.NET Java Virtual Machine ............ 13 1.3.3 Visual MainWin for J2EE ................. 14 1.3.4 Retroweaver ......................... 14 1.3.5 The Mono and DotGNU Projects ............. 14 2 JaCIL Software Design 16 2.1 Functional Specification ...................... 16 2.1.1 JaCIL Compiler Framework ................ 16 2.1.2 JaCIL Run-time Library .................. 17 2.2 Technical Design and Architecture ................ 17 2.2.1 Compiler Framework Overview .............. 18 2.2.2 The Compiler API ...................... 18 2.2.3 The Context API ....................... 21 2.2.3.1 Standard Context API Implementation .... 23 1 2.2.4 The Translator API ....................
    [Show full text]
  • Comparing Java and .NET Security
    Comparing Java and .NET Security: Lessons Learned and Missed Nathanael Paul David Evans University of Virginia Department of Computer Science [nate, evans ]@cs.virginia.edu Abstract Many systems execute untrusted programs in virtual machines (VMs) to mediate access to system resources. Sun introduced the Java VM in 1995, primarily intended as a lightweight platform for executing untrusted code inside web pages. More recently, Microsoft developed the .NET platform with similar goals. Both platforms share many design and implementation properties, but there are key differences between Java and .NET that have an impact on their security. This paper examines how .NET’s design avoids vulnerabilities and limitations discovered in Java and discusses lessons learned (and missed) from experience with Java security. Keywords: virtual machine security, Java security, .NET security, security design principles. 1. Introduction Java and .NET are both platforms for executing untrusted programs with security restrictions. Although they share similar goals and their designs are similar in most respects, there appear to be significant differences in the likelihood of security vulnerabilities in the two platforms. Figure 1 shows the number of major security vulnerabilities reported for each platform. As of December 2005, the Common Vulnerabilities and Exposures (CVE) database contains 150 entries concerning Java vulnerabilities [27], 38 of which we classify as major Java platform security vulnerabilities (we do not include application-specific bugs unrelated to the VM itself). The remaining vulnerabilities included in Figure 1 but not in the CVE are from Sun [39] (9 vulnerabilities) and McGraw and Felten [22] (5 vulnerabilities). The contrast with the .NET platform, in which no major security vulnerabilities have yet been found, appears striking.
    [Show full text]
  • Csc C Sharp Compiler Download
    Csc c sharp compiler download Rules for command-line syntax for the C# compiler; Sample command the C# compiler by typing the name of its executable file () at a ​Rules for command-line · ​Sample command lines for. So is there anyone who knows where I can download C# Compiler on how to use , the command line compiler for Visual C#. You can invoke the C# compiler by typing the name of its executable file () on the command line. If you do not use the Visual Studio Command Prompt, you must run vsvarsbat to set the appropriate environment variables to support command line builds. The executable. The C# compiler, which can be invoked from a command window, is included free with the Microsoft. Two separate downloads from Microsoft are required. under the start menu to locate the folder which contains the file named Sure, the framework includes a compiler, Look at this article for a . Yes, but you need to download and Framework SDK. Net compilers unless the developing is for learning purposes only. the folowing link: Tagged on: c++, csharp, IDE compiler, microsoft visual studio, sharp develop. We can always write code using Notepad and manually compile the code at command prompt using This is C# compiler which comes built-in with MS. NET] compiler without using ; Author: Konrad Rotuski; Updated: 7 Mar Download demo project - 9 Kb Of course I didn't wrote a whole C# compiler. The Mono C# compiler is considered feature complete for C# , C# , C# The specification shipped with Monodoc, and available on our web downloads is.
    [Show full text]
  • Shared Source CLI 2.0 Internals
    Shared Source CLI 2.0 Internals Joel Pobar, Ted Neward with David Stutz and Geoff Shilling Table of Contents PREFACE ..................................................................................................................................................... 1 Who Should Read This Book ..................................................................................................................... 4 How This Book Is Structured ..................................................................................................................... 4 Online CLI Resources ................................................................................................................................ 6 Acknowledgments ...................................................................................................................................... 6 1 INTRODUCING THE CLI COMPONENT MODEL ......................................................................... 9 The CLI Virtual Execution Environment ..................................................................................................10 A CLI Implementation in Shared Source: Rotor .......................................................................................17 2 GETTING STARTED WITH ROTOR ................................................................................................25 A Simple Component Assembly ...............................................................................................................25 Observing Managed Execution .................................................................................................................36
    [Show full text]