An In-Depth Look at the Autodesk® AutoCAD® App Autoloader Module

Slides:



Advertisements
Similar presentations
MODULE 3: OS & APP LAYERS. Agenda Preparing and importing a gold image Creating and understanding Install Machines Creating basic Application layers Understanding.
Advertisements

Master Pages, User Controls, Site Maps, Localization Svetlin Nakov Telerik Corporation
A Toolbox for Blackboard Tim Roberts
XS - Platform What is XS – Manager ?
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
CSS Central: Central Management Utility Screen View Samples Next.
Managing User Settings with Group Policy
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
11.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
NuGet Sweet, but not edible Chris
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
© 2010 IBM Corporation IBM Experience Modeler - Theme Editor Installing Python Image Library Presenter’s Name - Presenter’s Title DD Month Year.
© 2009 Autodesk Troubleshooting common installation problems TS AutoCAD (LT) Product Support By Tom Stoeckel.
© 2011 Autodesk Porting ObjectARX ® Applications and User Interfaces to AutoCAD ® for Mac ® Asheem Mamoowala Software Engineer, Autodesk.
SIR SONS IN RETIREMENT Computer User Group.
Tutorial 11 Installing, Updating, and Configuring Software
© 2011 Autodesk CP5239 Demand-Loading AutoCAD®.NET Plug-ins James E. Johnson Synergis Software Sr. CAD Developer.
Managing User Desktops with Group Policy
Tomcat Setup BCIS 3680 Enterprise Programming. Getting Web Apps to Work  Verify that Tomcat works.  Understand how context works.  Create folders/files.
Large Scale Parallel Print Service Ivan Deloose – David Foster – Ignacio Reguero CHEP 2000 – 8 February 2000 – Padova (I) Presented by Ivan Deloose -
Module 6: Configuring User Environments Using Group Policy.
+ Plug-in Demo: Dropbox Judith Schwartz Fall, 2011.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
4. Managing the Desktop Thomas Lee Chief Technologist – QA plc.
© 2011 Autodesk DM2480: Maximizing Autodesk ® Vault Verticals (Workgroup, Collaboration and Professional) Allen Gager KHS USA, Sarasota FL Image courtesy.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
Open Solutions for a Changing World™ Copyright 2005, Data Access Worldwide June 6-9, 2005 Key Biscayne, Florida 1 Application Deployment Stephen W. Meeley.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
IIS Manager Details Delegated Administration Configuration System.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Tomcat Setup BCIS 3680 Enterprise Programming. One-Click Tomcat Setup 2  This semester we’ll try to set up Tomcat with a PowerShell script.  Preparation.
*DT Project Model Leo Treggiari Intel Corp. Dec, 2005.
A Quick Tour of Ceedo Advanced Desktop Layering (for VDI and more…)
Office 2016 and Windows 10: Essential Concepts and Skills
Managing User Desktops with Group Policy
DHTML.
Geospatial Research & Solutions GIS.ASU.EDU
Moving to Configuration Manager Current Branch
Essentials of UrbanCode Deploy QQ147 Components
Large Scale Parallel Print Service
The Transition to Modern Office Add-in Development
AutoCAD Ironman – New APIs
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
Revit Exchange Store.
FIX: RSOD Red Screen Of Death in Windows 7/8/8.1/10
Advanced Integration and Deployment Techniques
CONFIGURING HARDWARE DEVICE & START UP PROCESS
Module 1: Getting Started
Mobile Application Development with MeeGo™ - Programming with SDK
Windows PowerShell Remoting: Definitely NOT Just for Servers
Principles of report writing
AC3274 CUIX Zen - Customizing the CUI
Module 11: Application Settings and Deployment
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
NORMA Lab. 5 Duplicating Object Type and Predicate Shapes
12/9/2018 Desktop Virtualization Corey Hynes Kyle Rosenthal President Technical Lead HynesITe Inc Spider Consulting @windowspcguy.
Microsoft Virtual Academy
Electronics II Physics 3620 / 6620
Software - Operating Systems
Windows 10 Deployment with MDT 2016 (8443)
Service Template Creation from the Ground Up
Service Template Creation from the Ground Up
Review of Previous Lesson
Instructor Materials Chapter 5: Windows Installation
Windows Forms in Visual Studio 2005: An in-depth look at key features
Plug-In Architecture Pattern
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

An In-Depth Look at the Autodesk® AutoCAD® App Autoloader Module Fenton Webb ADN

Agenda The Requirement The Problem The Solution How it works? Demos

The Requirement The Store must be… New Autodesk AppStore!! The Store must be… 1) Easy for the user to buy, install and use Apps User experience is absolutely key for success 2) Easy for developers to utilize while observing (1) Without apps, there is no store!! The need to make it easy to deploy apps is paramount. And, must also work for Mac, Win32, Win64 All languages All Autodesk Products

The Problem ARX/DBX/CRX .NET Long History of Deployment Headaches ARX/DBX/CRX Version specific registry keys and folder paths, installer nightmare Dependent DLL loading issues, OS paths not setup or conflicting, DLL Hell Load order issues, SDK versioning issues, dependency issues .NET Same issues as ObjectARX LoadFrom() context issues, must be installed into the AutoCAD exe folder – installer nightmare

The Problem LISP CUI/Mnu Files Long History of Deployment Headaches (cont.d) LISP Automatic startup extremely difficult, must modify user editable acad.lsp/acaddoc.lsp – installer nightmare Support Path setup – installer nightmare LISP is an uninstall nightmare, full stop CUI/Mnu Files Automatic startup is not nice, must queue a LISP CuiLoad expression to the command line No way to uninstall cleanly, menus stay even when deleted!! Must write a program that runs once the program is uninstalled in order to remove menu items by hand!

Win32, Win64 and Mac runtime are all different The Problem Long History of Deployment Headaches (cont.d) Win32, Win64 and Mac runtime are all different But in most cases, the actual ‘Product’ is the same to the user, why does a user need to care what platform the installer is for? Building an installer for each platform is a lot of work These are plugins, one deployment method should be enough

The Problem Long History of Deployment Headaches (cont.d) Installing to different User accounts requires 2nd stage installer Version, Language, Vertical installer nightmare Need to piggy back onto AutoCAD’s 2nd stage installer It’s tricky to implement and understand Developers simply avoid it Avoiding standard mechanism’s does not give a good User experience

Standard Deployment Method The Solution Professional Application Loader Autodesk Product PAL Standard Deployment Method Autoloader Protocol Static Install Folders Plugin .bundle folder

The Solution <UserRoaming>/Autodesk/ApplicationPlugins Two Static Plugin Folders (static = cannot be changed) <UserRoaming>/Autodesk/ApplicationPlugins Installing your App here provides single user install model <ProgramData>/Autodesk/ApplicationPlugins Installing your App here provides All User installation model no 2nd stage installer required!!!

The Solution Because the folders do not change… Why use Static folders? Because the folders do not change… Installation uses a simple CopyTo protocol Non-configurable, static folders make life much easier Installer creation is super simple Although, Installer is not needed Cross Platform - Works for Mac and Windows ‘CopyTo’ deployments work on all systems Copying folders works on all platforms

The Solution .bundle folder structure separated into components Static Folders contain .bundle plug-in folders .bundle folder structure separated into components Win32, Win64 and/or Mac specific runtime Combined runtime, in one bundle package User doesn’t care about what platform he’s running on! Having it all in one folder structure key Version specific runtime can be easily included Features enabled for 2010 but not 2009 Crash in sp1, or working in sp2 Bundle includes your entire application runtime Just like your Program Files folder Support files, images, help, etc etc Cui files, DCL, DLL dependencies, etc etc

The Solution .bundle folder structure separated into components Static Folders Contain.bundle plug-in folders .bundle folder structure separated into components Multiple Autodesk product support combined into one Combine your Revit, Inventor, AutoCAD product into one bundle!! AutoCAD WS, Vault support to come

The Solution Product implemented ‘Autoloader’ component PAL – The Autoloader Protocol Product implemented ‘Autoloader’ component Universal loading mechanism for all Autodesk products Implemented through the ‘Autoloader’ protocol Processes all bundles in the ApplicationPlugins folders For loading, registering, etc On Startup On Appearance (more later) Deals with all common plug-in loader issues Demand loading automatically taken care of Document specific loading automatically taken care of UI placement automatically taken care of Program paths automatically taken care of .NET Load context issues automatically taken care of

How it works? Static folders are processed for Use cases: AutoCAD Autoloader Component – Mixed Mode ARX, DBX Static folders are processed for Use cases: On Startup On Appearance When an application is installed while the host application is running App Store is web based. Each .bundle has its PackageContents.xml processed Depending on the settings the Components are loaded Detects DLL dependencies and adds the module path to the system PATH to avoid DLL hell. On Shutdown and next Startup, application entries are cleaned Allows for simple delete of the program files.

The root of the .bundle contains an XML file The Solution Autoloader Component – PackageContents.xml The root of the .bundle contains an XML file PackageContents.xml Describes the application How it loads and runs Which OS, Language and Version it was designed to run on How it’s dependencies are loaded and ordered How the UI loads How Support Paths should be setup Version information And more…

PackageContents.xml contains The Solution Autoloader Component – PackageContents.xml PackageContents.xml contains ApplicationPackage element - only one per package CompanyDetails element – only one per package Components element – 1-n processed top to bottom ComponentEntry element – 1-n processed bottom to top Commands element – only one per package Command element – 1-n

PackageContents.xml contains The Solution Autoloader Component – PackageContents.xml PackageContents.xml contains ApplicationPackage element - only one per package Base element, attributes describe the product as a whole CompanyDetails element – only one per package Components element – 1-n processed top to bottom ComponentEntry element – 1-n processed bottom to top Commands element – only one per package Command element – 1-n

PackageContents.xml contains The Solution Autoloader Component – PackageContents.xml PackageContents.xml contains ApplicationPackage element - only one per package CompanyDetails element – only one per package Components element – 1-n processed top to bottom Logical Componment of your product A set of DLL’s or files that are related A related product entry, maybe the Vault part of your product ComponentEntry element – 1-n processed bottom to top Commands element – only one per package Command element – 1-n

PackageContents.xml contains The Solution Autoloader Component – PackageContents.xml PackageContents.xml contains ApplicationPackage element - only one per package CompanyDetails element – only one per package Components element – 1-n processed top to bottom ComponentEntry element – 1-n processed bottom to top A file entry for your product Commands element – only one per package Command element – 1-n

The Solution PackageContents.xml RuntimeRequirements XML Element Special element for describing the requirements of the section Can be the child of the ApplicationPackage Defines the .bundle overall RuntimeRequirements Used for performance reasons Can be the child of a Components element Defines the Components overall RuntimeRequirements Used to separate parts of the product to specific platforms Can be the child of a ComponentEntry element Allows finer control over a ComponentEntry inside of a Components section Feature in Sp1 crashes, but in sp2 it works fine

Questions? …before Demos