*DT Project Model Leo Treggiari Intel Corp. Dec, 2005.

Slides:



Advertisements
Similar presentations
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
Advertisements

Integrating Access with the Web and with Other Programs.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
© 2008 Intel Corporation; made available under the EPL v1.0 | February 12, 2008 | Integrating a custom tool-chain in CDT.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
® IBM Software Group © 2009 IBM Corporation Rational Publishing Engine RQM Multi Level Report Tutorial David Rennie, IBM Rational Services A/NZ
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
Dali JPA Tools. About Dali Dali JPA Tools is an Eclipse Web Tools Platform sub-Project Dali 1.0 is a part of WTP 2.0 Europa coordinated release Goal -
National Center for Supercomputing Applications NCSA OPIE Presentation November 2000.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
XML Registries Source: Java TM API for XML Registries Specification.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
R R R CSE870: UML Component Diagrams Implementation Diagrams.
New Project Model Primary author: Mikhail Sennikovsky Contributors: Leo Treggiari Intel Corp. September, 2006.
TOS / TIS Code Architecture Copyright © 2008 Talend. All rights reserved.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
XP New Perspectives on Microsoft Office Access 2003, Second Edition- Tutorial 8 1 Microsoft Office Access 2003 Tutorial 8 – Integrating Access with the.
New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,
GJXDM Tool Overview Schema Subset Generation Tool Demo.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
Review for Eclipse Release Review | © 2012 by Review for Eclipse Committers, made available under the EPL v1.0 1 Review for Eclipse (R4E) 0.11 Release.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Java IDE Dwight Deugo Nesa Matic
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Why Learn Android? Largest installation base of any operating system Over 20,000 Android devices exist Businesses will likely move more to device-based.
Labs: Create, deploy and test a simple web service
Introducing IBM Rational Software Architect
Interface Concepts Modeling Core Team
Data Virtualization Demoette… ODBC Clients
Lesson # 9 HP UCMDB 8.0 Essentials
INF230 Basics in C# Programming
Working in the Forms Developer Environment
Customizing custom.
Goals Give you a feeling of what Eclipse is.
Single Sample Registration
Development Changes in Dynamics 365 for Finance and Operations
Abstract descriptions of systems whose requirements are being analysed
Sakai WebApp Structure
My Oracle Support (The next generation Metalink experience) lynn
HP C/C++ Remote developer plug-in for Eclipse
Chapter 2: Database System Concepts and Architecture
Intro To Design 1 Elementary School Library: User Sub-System Class Diagrams Software Engineering CSCI-3321 Dr. Tom Hicks Computer Science Department.
Principles of report writing
Machine Independent Features
Oracle Configurator Cloud
Unified Modeling Language
Chapter 2 – Software Processes
Introduction to Oracle Application Express
Using JDeveloper.
Microsoft Office Access 2003
Microsoft Office Access 2003
JavaServer Faces: The Fundamentals
Analysis models and design models
Software Design Lecture : 15.
An Introduction to Software Architecture
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Rational Publishing Engine RQM Multi Level Report Tutorial
NIEM Tool Strategy Next Steps for Movement
Software Development Process Using UML Recap
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

*DT Project Model Leo Treggiari Intel Corp. Dec, 2005

New Project Model – Why? Proposal is the result of discussions at CDT Fall Conference User problems with getting started with CDT projects – lack of “It just works”? Desire for CDT infrastructure to support multiple languages Desire for support of logical “projects” within an Eclipse project

New Project Model – Why Not? There will likely be API breakage that effects existing CDT extensions. There will be UI changes that experienced users will need to adjust to. Propose to support projects from version 2.1 and newer.

Goals Increased usability for both new users and experienced users Increased programming language independence – initial support for C/C++/Fortran Support for multiple “logical” projects Tool-chain information specified once, and available to all parts of *DT

CDT CModel Project model – information about the project that gets persisted and potentially shared between users Project “Working” model – information used in editing the project; some information is re- calculated every Eclipse session Code Model – represents the source code elements in a user’s application Binary Model – represents the binary objects created by the project

Changes to the Project Model Every *DT project contains one or more “build configurations”. Each project keeps track of its “active” build configuration. Architecturally, the build configuration is the central point where information about the current project context is shared (more on a later slide…) A project can contain source files from multiple programming languages. Eclipse content-types become the primary mechanism for determining the language of a source file when determining build tools, editors, views, etc.

Changes to the Project Model The “build system” to be used by the project is an attribute of the project that can be changed, and not one of the first decision points during project creation. A project can contain multiple “logical” projects, that is, configurations that build different artifacts, and library “sub- projects” New model elements are added for external libraries and deployment

Schema The project model is defined in an XML schema “Loose” superset of the current MBS build definitions model Used by tool-integrators to describe their tool- definitions to *DT Saved in.cproject file as part of the definition of a particular project Tool-integrator definitions can be provided by: –A *DT Extension point –XML files in a pre-defined location –Dynamically by implementing an interface

New Model Diagram

Parts of the Model TBD Multiple logical projects and sub-projects External Libraries –Information such as the include path(s) for the library header files used in compilation, the library path(s) for the binary libraries used in the link step, and the library file names. Deployment –defines the steps/tools to build an installation package to deploy the artifact(s) of the configuration.

Project Creation UI – Page 1 Each language provides its own wizards, beginning with simple empty project wizards –C/C++ C/C++ Project –Fortran Fortran Project Implementation and UI can be shared to a large extent

Project Creation UI - Page 2

Project Creation UI - Page 3

Project Creation UI - Page 4

Project Properties UI Build Settings –Command Lines (MBS only – was “Tool Settings”) –Make Builder (STD only) –Tools Build Steps (MBS only) Tool-chain (New) Error Parsers Binary Parsers Discovery Options –Build Environment Build settings (MBS only) Environment (need to unify MBS & STD implementations) Macros Include Paths & Symbols (STD only) Project Paths Project Settings –File Types –C/C++ Documentation –C/C++ Indexer

Other *DT Views Language-specific –Language Perspective Language-independent –Outline view –Project View (“Project Explorer”?) –Need to incorporate other UI changes as proposed in “Instant IDEs: Supporting New Languages in the CDT” (Jeff Overbey, Craig Rasmussen)

Other UI Changes Changing the active build configuration –Project menu item –Project context menu item –Toolbar icon with drop down list Selecting multiple build configurations –Via working sets –Via “categories”

Preferences Need to separate preferences that are language independent from those that are language specific

Implementation Details Project files –One new.cproject file instead of.cdtproject &.cdtbuild Project natures –The initial language nature is added by the language-specific new project wizard. This nature is never removed from the project. Other language natures are added and removed as the user adds /removes files to/from the project. ICOwner –Doesn’t fit in with the proposed model ICBuildConfiguration –Focus for cross component information sharing, e.g. builders provide info that is queried by the parser, etc…

Important Questions Will the benefit of these changes outweigh the API breakage and disruption? –I think it does. When can this be done? Who can work on it? –Ideally, we could get the API changes into 3.1, but I’m not sure that is possible. –Can we define a 4.0 release whose schedule (not yet known…) will be driven by this functionality?

Detailed Questions Interface naming – is it OK to use non- prefixed names such as IBuildConfiguration or should we prefix all interfaces with “IC” (or some other prefix). Either way, some existing names may need to be changed.