Development of a visual studio plugin to visualize a Blocks-Graph

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Open XML SDK for Microsoft Office
Technical BI Project Lifecycle
MOSS Workflows Workflow Technologies Overview November 15, 2007 Sogeti USA.
My First Building Block Presented By Tracy Engwirda 28 September, 2005.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Instructed by: Ofir Erel Performed by: Adam Levi Marina Skarbovsky.
OFC 317 使用 WinWF 构建 Microsoft Office SharePoint Server 2007 中的工作流应用.
Two main requirements: 1. Implementation Inspection policies (scheduling algorithms) that will extand the current AutoSched software : Taking to account.
File Systems and Databases
Advanced Object-Oriented Programming Features
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
A New Soar Debugger in Java Douglas Pearson ThreePenny Software
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
How to make it work? Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Chapter 1 Introduction Outstanding Features About This Book 1. A novel writing style is adopted to try to attract students’ or beginning programmers’ interesting.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Students: Ilya Paskhover, Itay Gal Supervisors: Oleg Rokhlenko, Nadav Golbandi.
Introduction 01_intro.ppt
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Workflow and SharePoint Presented by Ben Geers. Overview What is workflow? Windows Workflow Foundation How does workflow apply to SharePoint? WSS v3 vs.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
Extending ArcGIS for Server
Scalable Game Development William Roberts Senior Game Engineer
Integrated Development Environment (IDE)
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
Selected Topics in Software Engineering - Distributed Software Development.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Visual Linker Prototype presentation.
Office Business Applications Workshop Defining Business Process and Workflows.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Frameworks CompSci 230 S Software Construction.
Webview and Web services. Web Apps You can make your web content available to users in two ways in a traditional web browser in an Android application,
Michael Hofer Senior Consultant Microsoft Corporation.
Express Application Delivery 1 Ralph Chen Innovative Solutions Co. Ltd Confidential Gaming Application Development Solution Innovation is based on ideas.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Summer Project Marama2008 By Robert and Johnson. What is Marama? Marama is an Eclipses based toolset permits rapid specification of notational elements,
Visual Basic Integrated Development Environment (IDE) 56:150 Information System Design.
COMPUTER III. Fundamental Concepts of Programming Control Structures Sequence Selection Iteration Flowchart Construction Introduction to Visual Basic.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Visual Linker ADD presentation. slide 2  Project Overview And Vision  Project System View  The System Life Cycle  Data Model and.
Windows App Studio Windows App Studio is the tool that makes it fast and easy to build Windows 10 apps. It’s accessible from any device with a browser.
Interaction and Animation on Geolocalization Based Network Topology by Engin Arslan.
Object-Oriented Analysis and Design
File Systems and Databases
Hands-on Introduction to Visual Basic .NET
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Development of a visual studio plugin to visualize a Blocks-Graph Students: Alex Tarasiuk , Alex Gorodetsky Supervisors: Adam Levi

Definitions Block - Logical part of an application structure. A block can contain services, configurations, event kits, and end-points. Each Block can interact with another blocks through services by consuming/publishing them.  Blocks Graph - A data structure (extracted by Helper library) that contains a collection of blocks metadata. Helper library – A tool developed by Microsoft that can extract Block metadata from internal libraries. DGML -  An XML-based file format for directed graphs.

Goals Build a plug-in for Visual Studio 2012 that utilizes the blocks metadata to visualize the graph in a developer friendly manner. Getting acquainted with Helper Library, Visual Studio SDK, DGML Interface (GraphModel API). Defining Block Graph structure. Design and implement a GUI. Using GraphModel to visualize the Blocks as a directed graph. Integrating the functionality to Visual Studio 2012 (using Visual Studio SDK).

Blocks Graph Visualized Work Flow GUI DGMLGraph Create Data Structure representing the Blocks Graph Blocks Graph Visualized DGML DGML

Used Technologies C# XML(VSCT, XAML,DGML) Visual Studio 2012 SDK Visual Studio GraphModel API VSCT - Visual studio command table DGML – Directed Graph Markup Language

Methodology Extending the Visual Studio IDE In order to extend the IDE (integrated development environment), we use the Visual Studio SDK tools that helps you develop your own applications that extend the IDE and integrate seamlessly with it. IDE - Integrated development environment

Methodology The concept of software application is absent. Instead, the IDE hosts software components, called VSPackages, that provide application functionality. This functionality, in turn, is shared across the IDE as services. VSPackages offer services that they and other VSPackages use. The standard IDE also offers a broad range of services, such as SVsUIShell, which provide access to the IDE windowing functionality.

Methodology Therefore we, Define our Toolbar Define our Package Adding Commands, to the toolbar, with suitable handlers to our Service(Package) Define our Package Connect our Toolbar to it

Methodology Our package extends the Shell.Package class. The commands are defined in a VSCT file,  XML-based file format that defines the actual layout and type of the commands. Then we link them to our service with suitable handlers. The result:

Methodology The GUI, presented above, analyzes the users choice and acts accordingly. Each graph that is created/loaded has a List of loaded internal libraries. Only one graph can be presented at a time. Keep the toolbar concurrent with the presented graph. Protect the user from harmful behavior.

Methodology Blocks-MetaData (BMD) DGMLGraph BMD contains the following information (some of the data is not obligated) : block type, block consumed services, block published services, blocks source location, configuration (a set of used variables) and more.. DGMLGraph Responsible for converting assemblies metadata into a graph and modify it. An assembly loaded into DGMLGraph instance will be analyzed by the helper library in order to extract BMD for each block in the assembly. This information will be used to create a dependency graph from the blocks were each node is a block (including it’s properties) and each directed edge will represent a dependency between two blocks.

Methodology DGMLGraph (cont.) Block A depends on Block B if Blocks A consumes a service which Block B publishes. Building the graph: When a new assembly is loaded into DGMLGraph instance, we create a node for each block. Also we will keep 2 extra lists of blocks. One is for nodes with consumed service (Consumed List), and the other is for nodes with published services (Published List).

Methodology DGMLGraph (cont.) Building the graph (cont.): In order to add the edges between the nodes, we do the following: For each node in Consumed List Find a block in Published List, which publishes the requested service. If a match was found, add an edge. Otherwise do nothing. By doing so, we make sure that if a block with consumed service was loaded and there is a block (which was loaded into the graph at some point) which publishes the required service, there will be an edge between them.

Methodology DGMLGraph (cont.) Deployment Scenario Graph Model API (in VS2012) We chose to use Graph Model since it already integrated into Visual Studio and it creates and manages all the elements we need in dgml. Deployment Scenario Easy plug-in installation into VS 2012 using the VSIX, VS Extension Deployment.

Demo Time!

Completed Goals Data Structure design Generation of a graph using DGML GUI and graph integration into VS 2012 framework Graph modification by user Hide/unhide blocks, view blocks content, change graph layout, load/unload assemblies, save/load/export view Graph Save/Load ability A Plug-In with easy deployment scenario Documentation Data Structure design: ניהול גרפים וקבצי ספריה, מבנה שיוצר ומעדכן גרף(Dgml_interface), אינטגרציה בVS. Graph modification by user

Conclusion From the beginning we tried to use Graph-Sharp to create the graph, we found it unintuitive and we ran into a lot of issues integrating it into Visual Studio. Our conclusion from this experience is that we should do a wider research. We must make sure we understand the goals properly, since only in the midway meeting we learned some crucial information about the project. Visual Studio SDK is very complex, and the documentation lacks in code examples. We have found that dividing the requirements into several parts, makes the work more efficient and gives the possibility to work simultaneously.

Questions?