SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
ISSN: 2278 – 1323
                                International Journal of Advanced Research in Computer Engineering & Technology
                                                                                    Volume 1, Issue 4, June 2012



       Industrial Automation using Windows
   Presentation Foundation & Model View View-
                   Model Pattern
                       Sameer Soni1, Pranali Dhete2, Shirish Patil3 and Dr B.B. Meshram4
                                        Department of Computer Technology
                                Veermata Jijabai Technological Institute, Mumbai, India

Abstract — The paper focuses on flexible GUI development for industrial tool automation. Here we focus on tool for CNC
machine automation developed using WPF (Windows Presentation Foundation) & MVVM (Model View View-Model)
Pattern. The scheme allows flexible development of tool, better management of business intelligence and parallel code
development without overlapping of concepts. The paper also considers the custom software tool development by multiple
operators that share a commonality. MVVM architecture is an indirect successor of MVC pattern and it has successfully
churned out the flaws of latter technique by removing dependency between model and controller by synchronizing View with
ViewModel[1]. The main advantage now available is that parallel development & execution can be supported because
ViewModel always has the status of View available with it. Industrial tool development often requires time and multiple
developers for timely completion of project, and the approach suggested here is able to achieve the goal desired.

Index Terms—Industrial Automation, CNC Tool, WPF, MVVM, Parallel development, Flexible GUI development

I. INTRODUCTION                                               while ensuring there is a minimum impact to the rest of
Gear Metrology Industry is the essence of all tool based      the code base, and thus supporting Industrial Automation.
industries, and deals with accuracy and precision of          This paper is organized as follows:          first several
manufactured tools like gears, hobs, shavers, etc. These      approaches how GUI is usually made are presented in
tools being the basic component of machinery, needs to        Background, followed by a brief description about what
be accurate in dimensions at micron level. For example,       WPF and MVVM are. Next a concrete example is
gears used for power transmission, has several angular        provided that shows how WPF and MVVM can be used
teeth and have a complicated design. For the machine to       beneficially in Industrial Automation, followed by a
work properly, their accuracy is prime necessity.             sample application and conclusion of the paper.
Now if the tool manufactured is quite accurate, then also
it needs to avoid human errors, and so here we propose a      II. BACKGROUND
system for CNC machines. The software tool that we
have developed will not only automate the manual              This section will present some techniques that are used to
                                                              create applications having a GUI. Those techniques are
machine, but also raise the precision level to microns.
The software tool will provide Graphical User Interface       still valid and extensively used in contemporary
for user to feed in values as per gear tool to be analyzed,   application development but WPF and MVVM provide a
                                                              step forward which is going to be described after this
and the user will then select the option for checking the
tool. The application would then instruct the physical        section and is the purpose of this paper.
testing machine to firstly identify the axis alignment and
then test the tool for lead, profile, pitch and other         A. Model View Controller (MVC) pattern
parameters.                                                   MVC Pattern was created in late 1970’s[2]. In MVC
After testing of tool, a report would be generated which      pattern, a Model is used to represent data that the rest of
will depict the variations between the actual tool and the    the application needs. Physical storage is not a concern of
expected values. So far this has been the overall             the MVC pattern, but it is assumed that Model knows
functionalities that are to be performed using the software   how to store, load, handle and transform data based on
application tool.                                             the inputs it gets. Model notifies Views through a
For making the desired application tool, a robust             Controller when any change of the data occurs so Views
development architecture and methodology is required          can update themselves accordingly. View is a component
that is able to allow changes and modification at later       in the pattern that is used to display data to the actual user
stage of development. These modifications include             and had elements that allow user interaction such as
hardware and software modifications that often involve        buttons, textboxes, tabs, etc.
GUI changes and additions on top of the basic design. In      Model encapsulates the core data and functionality. View
this paper I am going to talk about how Prime                 encapsulates the presentation of the data there can be
Technologies copes with such needs for a software             many views of the common data. Controller accepts input
change by utilizing Windows Presentation Foundation           from the user and makes request from the model for the
(WPF) and Model View ViewModel (MVVM) design                  data to produce a new view.
pattern to provide its customers with GUI of their choice
                                                                                                                        149
                                          All Rights Reserved © 2012 IJARCET
ISSN: 2278 – 1323
                                International Journal of Advanced Research in Computer Engineering & Technology
                                                                                    Volume 1, Issue 4, June 2012

B. Model View Presenter (MVP) pattern                         behind such as business logic and data management
Model View Presenter (MVP) developed in 1990s and             modules.
pattern is similar to MVC pattern called MVP Passive
View. In Supervising Controller MVP variant, Presenter
receives events from the GUI, triggers and update to the
Model and Model notifies the View about its change
which is accomplished via data binding. MVP is used
among other things as the basis design for .NET
development where View can be a Window/User-Control
application, which is a regular desktop application, or a
Web page, where Presenter has logic and data View
needs to display itself properly. Result is that developers
can greatly reuse their code and develop the application
easily for 2 display mediums, and it also provides for
automated testing of model and logic behind the View.
View responsibility is to show the data provided by
presenter, and purpose of the presenter is to reach to                        Fig 1. Sample WPF Application[3]
model, retrieve the needed data, performs required
processing and returns the UI prepared data to the view.      B. MVVM
                                                              Model View View Model (MVVM) [4] pattern was
                                                              developed at Microsoft by John Gossman as a variation
III. WPF AND MVVM PATTERN                                     of the MVP pattern to leverage benefits and features of
                                                              WPF for application development. Model contains the
A. WPF                                                        data and does not know about the View or the
Windows Presentation Foundation (WPF) is a next-              ViewModel. ViewModel is an abstraction of the View,
generation presentation system for building Windows           and contains all of its data and state.
client applications with visually stunning user               ViewModel does not have a reference to the View class,
experiences. With WPF, you can create a wide range of         but a data binding mechanism is used where ViewModel
both standalone and browser-hosted applications[3]. It        is a data context of the View and View is bound to
builds upon DirectX for drawing and rendering content         properties ViewModel has. If some ViewModel property
which gives developers and designers lots of tools to         changes, View receives a new value and if View issues
create graphically pleasing user interfaces. WPF              some command, ViewModel executes the command. For
introduces a common programming model and clearly             example, ViewModel for a motion axis can have
separates presentation from logic. WPF provides graphics      properties as follows: axis name, position, speed, error
services (2D, 3D, vector graphics) which are rendered on      condition. View can have GUI elements such as labels or
the graphics card GPU leaving minimal impact to the           text boxes that are bound to those properties. If a
CPU, provide powerful data binding mechanism, media           position is changed while motor is driving the axis,
services, layout engine so that the application can be        position property value will change and View will always
easily resized and/or displayed on various screen sizes       have correct value to display.
and does not use fixed point GUI widget placing as was
the case before WPF, templates that are used to redefine
how a GUI element looks (control template) or how data
should be displayed (data template), animations, better
text services, and so on. Thus, WPF is an extensive
library full of features for creating very expressive GUI’s
and is used in .NET development environment. Creation
of GUI in WPF is done using XAML [5], which is XML-
like declarative language, where GUI is created using
XAML declarations and code logic behind GUI elements
is created using one of the .NET languages such as C#.
Sample XAML snippet can be seen in Fig 1[3] below.
WPF however does not force a developer to use XAML              Fig2. TextBox GUI widget bound to a ViewModel slider property.
and all GUI can be created from code if one chooses to
do so. However with XAML application designers can            Binding as described is accomplished using dependency
contribute to the software development lifecycle where        property in WPF and is deeply embedded inside WPF
their GUI design can be seamlessly and immediately used       library and XAML. For example XAML in Fig 2 above
in the actual application, developers do not need to          defines such a text box, where values change on moving
develop a GUI per design as it was customary prior to         sliders.
WPF. Thus, software can be developed in parallel -
designers develop GUI while developers create code

                                                                                                                            150
                                          All Rights Reserved © 2012 IJARCET
ISSN: 2278 – 1323
                                International Journal of Advanced Research in Computer Engineering & Technology
                                                                                    Volume 1, Issue 4, June 2012

IV. INDUSTRIAL AUTOMATION USING WPF &                          GUI widgets and layouts helps us in localizing our
MVVM                                                           software, which was not possible using .NET WinForms
                                                               where a widget had to be resized manually if localized
Gear Testing Industries check and verify various               text did not fit.
industrial tools like gears and hobs, for multiple
parameters like lead, profile, pitch, etc and prepare their    Using MVVM pattern greatly improved our productivity
report for their manufacturing accuracy and quality.           and drastically reduced side-effect errors when a
These reports are then used by the production department       modification had to be done. With MVVM pattern we
for improving their manufacturing process.                     were able to produce self contained modules consisting of
For gear testing, these industries have been using manual      Model and ViewModel parts for a certain object in our
machines which involve measuring probes mounted on             system, fully test it using testing harnesses. ViewModel
horizontal and vertical axis, and their position and           exposes properties and command objects a GUI (a View
movement is regulated by hand held drives. The process         in the MVVM pattern) can display or act upon. GUI
is though delivers sufficient results, but requires quite      changes or modifications do not require any changes of
amount of hand skilled proficiency, and involves huge          the ViewModel that has logic,etc and View does not have
amount of risk of human error.                                 any code behind – it is pure XAML having only GUI
To overcome this flaw of human error, idea of automated        look design declaration and data binding specification.
machines i.e. CNC machines have been proposed, and are         Thus, to customize a GUI for a specific customer we can
they are widely used these days. Although it involves a        only change the XAML portion of the application to
huge investment at initial stage, but proves its real worth    expose or hide a certain property or command binding in
in longer run. It removes human error, is time efficient       case more or less data is needed. To change physical
and involves least manual operations and thus supports         layout and design XAML is also easily changed. To do a
Industry to automate.                                          more involved change, we can create another ViewModel
To support this automation in the CNC machine, the             and corresponding XAML and other parts of the system
background software and the embedded systems play a            do not have to be modified because XAML can use
vital role which provide these machines the logic and          DataTemplate to select dynamically a View for a certain
controls to behave as per commands.                            ViewModel object instance. Thus, main window XAML
                                                               is minimally changed to register the new ViewModel and
A. Need for Flexible Design                                    rest of the application code remains unchanged. It should
Each manipulator produced on a custom basis for a              be noted that a bigger change may require changing of
particular customer shares a lot of commonality in terms       the other ViewModels and performing their testing again,
of hardware, electronics and software but is also              but at Inetec using WPF and MVVM pattern we have
customized for a particular customer according to their        reduced our time and effort to do changes to the GUI by
specifications and expected needs. [6]Often times, there       about 80% comparing with when WinForms .NET
are requests to modify the GUI to suit specific customer       application was developed and used. Effort in doing the
need, add additional control component for a specific          localization and making sure all GUI elements display
custom application or make several GUIs to be used with        correctly was reduced drastically to a similar percentage.
the same equipment depending on the actual operator
role. Thus, it is essential that software is flexible enough   C. Parallel Development
to accommodate those changes while not affecting other         The Tool to be developed has several modules and each
software code parts to prevent introducing the bugs as a       module has various components in them. For a faster
side-effect of the changes. Lastly, in today’s market of       progress of events, these modules have been divided
this specific industry, all parts of the system including      among various team members, and then each of them
software need to be fully localized to the native language     worl on their own individual component[7]. A common
and it is essential that technology used to develop such       repository has been maintained at server where every
software support this requirement seamlessly.                  developer commits his part of work, and thus the other
                                                               developer can now access this updated work in his
B. WPF and MVVM Solution for Flexible GUI                      working copy simply by updating the component.
WPF was designed to greatly decouple GUI from the rest         Thus, the cycle progresses and developments proceed in
of the code to a far greater extent than it was possible       distributed yet common fashion.
using MVC/MVP pattern for GUI development. Here, we
design all GUI components in XAML and declarative              D. Sample Application
nature of XAML speeds up GUI design process. Using             This section briefly describes a 4-axis CNC Gear Testing
WPF and XAML to define a GUI we can experiment                 Machine using MVVM pattern. Finished application
easily and change/redefine the GUI quicker. Our                would look like in Fig 3. The Main Window will allow
designers can develop GUI design and work with the             user to select various components like Gears, Hobs,
customer and application departments to come up with a         Stylus, Settings, Macros, Reports, and then as per
intuitive design while development team focuses on logic       functionalities chosen, he can either feed in the actual
and other modules of the software application. Lastly,         values, or tests the desired tool against the selected
WPF support for localization in terms of auto sizing of        standard. Following MVVM pattern, Main window has

                                                                                                                     151
                                           All Rights Reserved © 2012 IJARCET
ISSN: 2278 – 1323
                                      International Journal of Advanced Research in Computer Engineering & Technology
                                                                                          Volume 1, Issue 4, June 2012

its corresponding ViewModel that has a property list of             movements of ellipses, changes in contours, and other
multiple Screen ViewModels object instances and one                 graphical changes without affecting the background logic
ViewModel for system instance. For each ViewModel,                  code base.
there is a custom WPF user control created which
corresponds to a View and is bound to properties of its             Thus, WPF and MVVM can provide for a rapid prototype
particular ViewModel. In XAML on the application level,             development to be used quickly with a simple and then
in a data template each ViewModel is registered to use a            GUI can be further refined in function, visual cues and
particular custom WPF user control. Thus, in                        graphic design with frozen and tested ViewModel code.
MainWindow when <ItemsControl> GUI Widget is                        This has proven to be greatly beneficial for custom
bound to property which is a list of ViewModels, it will            software design, along with component reusability
populate its items list with instances of Views defined in          MVVM provides.
the data template and would set the data context of View
to a particular item in the list it was bound to – showing          V. CONCLUSION
(items) as in Fig 3.                                                In this paper an application of new framework of WPF
                                                                    and MVVM has been presented that is more suitable to
                                                                    the needs and requirements of Tool Testing Industry that
                                                                    have to be reliable but also flexible to accommodate
                                                                    customer changes, specific requirements and future
                                                                    changes which company develops. Traditional
                                                                    MVC/MVP patterns provide a degree of separation
                                                                    between logic and GUI code, but WPF and MVVM take
                                                                    this a step further. Utilizing these two technologies
                                                                    proven to be greatly beneficial in our organization in
                                                                    terms of increased component reusability, fast response
                                                                    time to customer change requests, reduced side effects of
                                                                    such changes helping in maintenance of software and
                                                                    shared code base library, parallel development of GUI
                                                                    and code and reduced time to spend on localization.

                                                                    REFERENCES
Fig 3. Sample application screenshot showing GUI structure.
                                                                    [1]. MVVM vs MVP vs MVC
As ViewModel data changes, for example input values                 http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/
changes, View will display correct position in the textbox          [2]. G Trygve M. H. Reenskaug, “MVC XEROX PARC 1978-79”.
automatically due to binding. Thus, once ViewModel is               http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html
created along with corresponding user control
implementing the View, things work automatically in                 [3]. Introduction to WPF .NET Framework 4
                                                                    http://msdn.microsoft.com/en-us/library/aa970268.aspx
WPF and MVVM framework.
                                                                    [4]. XAML in WPF
                                                                    http://msdn.microsoft.com/en-us/library/ms747122.aspx

                                                                    [5]. Introduction to Model/View/ViewModel pattern for building WPF
                                                                    apps – John Gossman
                                                                    http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx

                                                                    [6]. Flexible GUI in Robotics Applications Using Windows
                                                                    Presentation Foundation Framework and Model View ViewModel
                                                                    Pattern - Fran Jarnjak, IEEE 2010

                                                                    [7]. Ergonomics Research and CNC machine tools in the interface
                                                                    design of the application - IEEE 2008

                                                                    [8]. Microsoft Corporation. “Model View Presentter Pattern” (undated).
                                                                    http://msdn.microsoft.com/en-us/library/cc304760.aspx

                                                                    [9]. Microsoft Corporation, “Introducing Windows Presentation
Fig 4. An intermediate Screen which allows selection of different   Foundation” (undated).
standards for left and right flank                                  http://msdn.microsoft.com/enus/library/aa663364.aspx




Also, it can be seen that different checking parameters
can be applied on left and right flanks of tool to be tested.
There are also several graphical changes which allow
                                                                                                                                      152
                                                  All Rights Reserved © 2012 IJARCET

Mais conteúdo relacionado

Mais procurados

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...
ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...
ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...ijait
 
uml diagrams
uml diagramsuml diagrams
uml diagramsmakena2mm
 
IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...
IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...
IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...IRJET Journal
 
Speed delivery of Android devices and applications with model-driven development
Speed delivery of Android devices and applications with model-driven developmentSpeed delivery of Android devices and applications with model-driven development
Speed delivery of Android devices and applications with model-driven developmentBill Duncan
 
User Interface Derivation from Business Processes: A Model-Driven Approach fo...
User Interface Derivation from Business Processes: A Model-Driven Approach fo...User Interface Derivation from Business Processes: A Model-Driven Approach fo...
User Interface Derivation from Business Processes: A Model-Driven Approach fo...Jean Vanderdonckt
 
SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...
SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...
SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...Applied Computing Group
 
Innovate2011_MAC-1597A
Innovate2011_MAC-1597AInnovate2011_MAC-1597A
Innovate2011_MAC-1597AArman Atashi
 
IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...
IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...
IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...IRJET Journal
 
Class 02 Objective C
Class 02   Objective CClass 02   Objective C
Class 02 Objective CVioleta Salas
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...CSCJournals
 
Advancement of ucp with end user
Advancement of ucp with end userAdvancement of ucp with end user
Advancement of ucp with end userijseajournal
 
Basic concepts and terminology for the Requirements Management application
Basic concepts and terminology for the Requirements Management applicationBasic concepts and terminology for the Requirements Management application
Basic concepts and terminology for the Requirements Management applicationIBM Rational software
 
Multi project security exception reports - Oracle Primavera P6 Collaborate 14
Multi project security exception reports  - Oracle Primavera P6 Collaborate 14Multi project security exception reports  - Oracle Primavera P6 Collaborate 14
Multi project security exception reports - Oracle Primavera P6 Collaborate 14p6academy
 
Lab 3: Commenting on artifacts and customizing dashboards
Lab 3: Commenting on artifacts and customizing dashboardsLab 3: Commenting on artifacts and customizing dashboards
Lab 3: Commenting on artifacts and customizing dashboardsIBM Rational software
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET Journal
 

Mais procurados (20)

IBM Worklight Whitepaper
IBM Worklight WhitepaperIBM Worklight Whitepaper
IBM Worklight Whitepaper
 
ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...
ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...
ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OB...
 
uml diagrams
uml diagramsuml diagrams
uml diagrams
 
IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...
IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...
IRJET- Cloud-Based Naive Bayes Classifier for Dynamic Design to Support Usabi...
 
Speed delivery of Android devices and applications with model-driven development
Speed delivery of Android devices and applications with model-driven developmentSpeed delivery of Android devices and applications with model-driven development
Speed delivery of Android devices and applications with model-driven development
 
Composite Application Library, Prism v2
Composite Application Library, Prism v2Composite Application Library, Prism v2
Composite Application Library, Prism v2
 
User Interface Derivation from Business Processes: A Model-Driven Approach fo...
User Interface Derivation from Business Processes: A Model-Driven Approach fo...User Interface Derivation from Business Processes: A Model-Driven Approach fo...
User Interface Derivation from Business Processes: A Model-Driven Approach fo...
 
SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...
SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...
SEAA'2012: An MDE approach for Runtime Monitoring and Adapting Component-base...
 
Innovate2011_MAC-1597A
Innovate2011_MAC-1597AInnovate2011_MAC-1597A
Innovate2011_MAC-1597A
 
IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...
IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...
IRJET- A Repository Application Developed using .Net MVC and Angularjs for In...
 
Class 02 Objective C
Class 02   Objective CClass 02   Objective C
Class 02 Objective C
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
 
Advancement of ucp with end user
Advancement of ucp with end userAdvancement of ucp with end user
Advancement of ucp with end user
 
Basic concepts and terminology for the Requirements Management application
Basic concepts and terminology for the Requirements Management applicationBasic concepts and terminology for the Requirements Management application
Basic concepts and terminology for the Requirements Management application
 
1 introduction
1 introduction1 introduction
1 introduction
 
Multi project security exception reports - Oracle Primavera P6 Collaborate 14
Multi project security exception reports  - Oracle Primavera P6 Collaborate 14Multi project security exception reports  - Oracle Primavera P6 Collaborate 14
Multi project security exception reports - Oracle Primavera P6 Collaborate 14
 
Overview visual studio
Overview visual studioOverview visual studio
Overview visual studio
 
Lab 3: Commenting on artifacts and customizing dashboards
Lab 3: Commenting on artifacts and customizing dashboardsLab 3: Commenting on artifacts and customizing dashboards
Lab 3: Commenting on artifacts and customizing dashboards
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
IRJET- Design Automation of Cam Lobe Modeling in Creo using C#
 

Destaque

Electrically small antennas: The art of miniaturization
Electrically small antennas: The art of miniaturizationElectrically small antennas: The art of miniaturization
Electrically small antennas: The art of miniaturizationEditor IJARCET
 
Volume 2-issue-6-2108-2113
Volume 2-issue-6-2108-2113Volume 2-issue-6-2108-2113
Volume 2-issue-6-2108-2113Editor IJARCET
 
Ijarcet vol-2-issue-7-2268-2272
Ijarcet vol-2-issue-7-2268-2272Ijarcet vol-2-issue-7-2268-2272
Ijarcet vol-2-issue-7-2268-2272Editor IJARCET
 
Volume 2-issue-6-2200-2204
Volume 2-issue-6-2200-2204Volume 2-issue-6-2200-2204
Volume 2-issue-6-2200-2204Editor IJARCET
 
Volume 2-issue-6-2195-2199
Volume 2-issue-6-2195-2199Volume 2-issue-6-2195-2199
Volume 2-issue-6-2195-2199Editor IJARCET
 
Volume 2-issue-6-2205-2207
Volume 2-issue-6-2205-2207Volume 2-issue-6-2205-2207
Volume 2-issue-6-2205-2207Editor IJARCET
 

Destaque (10)

Gimnasia
GimnasiaGimnasia
Gimnasia
 
test
testtest
test
 
Python Intro-Functions
Python Intro-FunctionsPython Intro-Functions
Python Intro-Functions
 
Busquedas en internet
Busquedas en internetBusquedas en internet
Busquedas en internet
 
Electrically small antennas: The art of miniaturization
Electrically small antennas: The art of miniaturizationElectrically small antennas: The art of miniaturization
Electrically small antennas: The art of miniaturization
 
Volume 2-issue-6-2108-2113
Volume 2-issue-6-2108-2113Volume 2-issue-6-2108-2113
Volume 2-issue-6-2108-2113
 
Ijarcet vol-2-issue-7-2268-2272
Ijarcet vol-2-issue-7-2268-2272Ijarcet vol-2-issue-7-2268-2272
Ijarcet vol-2-issue-7-2268-2272
 
Volume 2-issue-6-2200-2204
Volume 2-issue-6-2200-2204Volume 2-issue-6-2200-2204
Volume 2-issue-6-2200-2204
 
Volume 2-issue-6-2195-2199
Volume 2-issue-6-2195-2199Volume 2-issue-6-2195-2199
Volume 2-issue-6-2195-2199
 
Volume 2-issue-6-2205-2207
Volume 2-issue-6-2205-2207Volume 2-issue-6-2205-2207
Volume 2-issue-6-2205-2207
 

Semelhante a 149 152

MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobilenaral
 
Android DesignArchitectures.pptx
Android DesignArchitectures.pptxAndroid DesignArchitectures.pptx
Android DesignArchitectures.pptxSafnaSaff1
 
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Mvc vs mvp vs mvvm  a guide on architecture presentation patternsMvc vs mvp vs mvvm  a guide on architecture presentation patterns
Mvc vs mvp vs mvvm a guide on architecture presentation patternsConcetto Labs
 
Development of Multiplatform CMS System with Zend Framework
Development of Multiplatform CMS System with Zend FrameworkDevelopment of Multiplatform CMS System with Zend Framework
Development of Multiplatform CMS System with Zend FrameworkSinisa Vukovic
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation SystemApoorva Chandra
 
Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC StructureDipika Wadhvani
 
A study of mvc – a software design pattern for web application development
A study of mvc – a software design pattern for web application developmentA study of mvc – a software design pattern for web application development
A study of mvc – a software design pattern for web application developmentIAEME Publication
 
Application for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsApplication for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsMike Taylor
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksIRJET Journal
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCAnton Krasnoshchok
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxQuickwayInfoSystems3
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxQuickwayInfoSystems3
 
Customizing Model of Mobile Service Computing on Cloud of Things
Customizing Model of Mobile Service Computing on Cloud of ThingsCustomizing Model of Mobile Service Computing on Cloud of Things
Customizing Model of Mobile Service Computing on Cloud of ThingsIRJET Journal
 
Real-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppReal-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppMike Taylor
 
Code Camp 06 Model View Presenter Architecture
Code Camp 06   Model View Presenter ArchitectureCode Camp 06   Model View Presenter Architecture
Code Camp 06 Model View Presenter Architecturebitburner93
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non Itanicolay
 
Case study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversionCase study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversionGrey Matter India Technologies PVT LTD
 
demystifying_the_architectures_of_a_mobile_app_development.pdf
demystifying_the_architectures_of_a_mobile_app_development.pdfdemystifying_the_architectures_of_a_mobile_app_development.pdf
demystifying_the_architectures_of_a_mobile_app_development.pdfsarah david
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )Ahmed Emad
 

Semelhante a 149 152 (20)

MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
 
Android DesignArchitectures.pptx
Android DesignArchitectures.pptxAndroid DesignArchitectures.pptx
Android DesignArchitectures.pptx
 
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
Mvc vs mvp vs mvvm  a guide on architecture presentation patternsMvc vs mvp vs mvvm  a guide on architecture presentation patterns
Mvc vs mvp vs mvvm a guide on architecture presentation patterns
 
Development of Multiplatform CMS System with Zend Framework
Development of Multiplatform CMS System with Zend FrameworkDevelopment of Multiplatform CMS System with Zend Framework
Development of Multiplatform CMS System with Zend Framework
 
combinepdf
combinepdfcombinepdf
combinepdf
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation System
 
Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC Structure
 
A study of mvc – a software design pattern for web application development
A study of mvc – a software design pattern for web application developmentA study of mvc – a software design pattern for web application development
A study of mvc – a software design pattern for web application development
 
Application for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsApplication for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo Locations
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web Frameworks
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
 
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptxWhat Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
What Are The Benefits Of Using MVC Framework In ASP.NET Development.pptx
 
Customizing Model of Mobile Service Computing on Cloud of Things
Customizing Model of Mobile Service Computing on Cloud of ThingsCustomizing Model of Mobile Service Computing on Cloud of Things
Customizing Model of Mobile Service Computing on Cloud of Things
 
Real-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppReal-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet App
 
Code Camp 06 Model View Presenter Architecture
Code Camp 06   Model View Presenter ArchitectureCode Camp 06   Model View Presenter Architecture
Code Camp 06 Model View Presenter Architecture
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non It
 
Case study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversionCase study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversion
 
demystifying_the_architectures_of_a_mobile_app_development.pdf
demystifying_the_architectures_of_a_mobile_app_development.pdfdemystifying_the_architectures_of_a_mobile_app_development.pdf
demystifying_the_architectures_of_a_mobile_app_development.pdf
 
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
 

Mais de Editor IJARCET

Volume 2-issue-6-2190-2194
Volume 2-issue-6-2190-2194Volume 2-issue-6-2190-2194
Volume 2-issue-6-2190-2194Editor IJARCET
 
Volume 2-issue-6-2186-2189
Volume 2-issue-6-2186-2189Volume 2-issue-6-2186-2189
Volume 2-issue-6-2186-2189Editor IJARCET
 
Volume 2-issue-6-2177-2185
Volume 2-issue-6-2177-2185Volume 2-issue-6-2177-2185
Volume 2-issue-6-2177-2185Editor IJARCET
 
Volume 2-issue-6-2173-2176
Volume 2-issue-6-2173-2176Volume 2-issue-6-2173-2176
Volume 2-issue-6-2173-2176Editor IJARCET
 
Volume 2-issue-6-2165-2172
Volume 2-issue-6-2165-2172Volume 2-issue-6-2165-2172
Volume 2-issue-6-2165-2172Editor IJARCET
 
Volume 2-issue-6-2159-2164
Volume 2-issue-6-2159-2164Volume 2-issue-6-2159-2164
Volume 2-issue-6-2159-2164Editor IJARCET
 
Volume 2-issue-6-2155-2158
Volume 2-issue-6-2155-2158Volume 2-issue-6-2155-2158
Volume 2-issue-6-2155-2158Editor IJARCET
 
Volume 2-issue-6-2148-2154
Volume 2-issue-6-2148-2154Volume 2-issue-6-2148-2154
Volume 2-issue-6-2148-2154Editor IJARCET
 
Volume 2-issue-6-2143-2147
Volume 2-issue-6-2143-2147Volume 2-issue-6-2143-2147
Volume 2-issue-6-2143-2147Editor IJARCET
 
Volume 2-issue-6-2119-2124
Volume 2-issue-6-2119-2124Volume 2-issue-6-2119-2124
Volume 2-issue-6-2119-2124Editor IJARCET
 
Volume 2-issue-6-2139-2142
Volume 2-issue-6-2139-2142Volume 2-issue-6-2139-2142
Volume 2-issue-6-2139-2142Editor IJARCET
 
Volume 2-issue-6-2130-2138
Volume 2-issue-6-2130-2138Volume 2-issue-6-2130-2138
Volume 2-issue-6-2130-2138Editor IJARCET
 
Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129Editor IJARCET
 
Volume 2-issue-6-2114-2118
Volume 2-issue-6-2114-2118Volume 2-issue-6-2114-2118
Volume 2-issue-6-2114-2118Editor IJARCET
 
Volume 2-issue-6-2102-2107
Volume 2-issue-6-2102-2107Volume 2-issue-6-2102-2107
Volume 2-issue-6-2102-2107Editor IJARCET
 
Volume 2-issue-6-2098-2101
Volume 2-issue-6-2098-2101Volume 2-issue-6-2098-2101
Volume 2-issue-6-2098-2101Editor IJARCET
 
Volume 2-issue-6-2095-2097
Volume 2-issue-6-2095-2097Volume 2-issue-6-2095-2097
Volume 2-issue-6-2095-2097Editor IJARCET
 
Volume 2-issue-6-2091-2094
Volume 2-issue-6-2091-2094Volume 2-issue-6-2091-2094
Volume 2-issue-6-2091-2094Editor IJARCET
 
Volume 2-issue-6-2085-2090
Volume 2-issue-6-2085-2090Volume 2-issue-6-2085-2090
Volume 2-issue-6-2085-2090Editor IJARCET
 
Volume 2-issue-6-2081-2084
Volume 2-issue-6-2081-2084Volume 2-issue-6-2081-2084
Volume 2-issue-6-2081-2084Editor IJARCET
 

Mais de Editor IJARCET (20)

Volume 2-issue-6-2190-2194
Volume 2-issue-6-2190-2194Volume 2-issue-6-2190-2194
Volume 2-issue-6-2190-2194
 
Volume 2-issue-6-2186-2189
Volume 2-issue-6-2186-2189Volume 2-issue-6-2186-2189
Volume 2-issue-6-2186-2189
 
Volume 2-issue-6-2177-2185
Volume 2-issue-6-2177-2185Volume 2-issue-6-2177-2185
Volume 2-issue-6-2177-2185
 
Volume 2-issue-6-2173-2176
Volume 2-issue-6-2173-2176Volume 2-issue-6-2173-2176
Volume 2-issue-6-2173-2176
 
Volume 2-issue-6-2165-2172
Volume 2-issue-6-2165-2172Volume 2-issue-6-2165-2172
Volume 2-issue-6-2165-2172
 
Volume 2-issue-6-2159-2164
Volume 2-issue-6-2159-2164Volume 2-issue-6-2159-2164
Volume 2-issue-6-2159-2164
 
Volume 2-issue-6-2155-2158
Volume 2-issue-6-2155-2158Volume 2-issue-6-2155-2158
Volume 2-issue-6-2155-2158
 
Volume 2-issue-6-2148-2154
Volume 2-issue-6-2148-2154Volume 2-issue-6-2148-2154
Volume 2-issue-6-2148-2154
 
Volume 2-issue-6-2143-2147
Volume 2-issue-6-2143-2147Volume 2-issue-6-2143-2147
Volume 2-issue-6-2143-2147
 
Volume 2-issue-6-2119-2124
Volume 2-issue-6-2119-2124Volume 2-issue-6-2119-2124
Volume 2-issue-6-2119-2124
 
Volume 2-issue-6-2139-2142
Volume 2-issue-6-2139-2142Volume 2-issue-6-2139-2142
Volume 2-issue-6-2139-2142
 
Volume 2-issue-6-2130-2138
Volume 2-issue-6-2130-2138Volume 2-issue-6-2130-2138
Volume 2-issue-6-2130-2138
 
Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129Volume 2-issue-6-2125-2129
Volume 2-issue-6-2125-2129
 
Volume 2-issue-6-2114-2118
Volume 2-issue-6-2114-2118Volume 2-issue-6-2114-2118
Volume 2-issue-6-2114-2118
 
Volume 2-issue-6-2102-2107
Volume 2-issue-6-2102-2107Volume 2-issue-6-2102-2107
Volume 2-issue-6-2102-2107
 
Volume 2-issue-6-2098-2101
Volume 2-issue-6-2098-2101Volume 2-issue-6-2098-2101
Volume 2-issue-6-2098-2101
 
Volume 2-issue-6-2095-2097
Volume 2-issue-6-2095-2097Volume 2-issue-6-2095-2097
Volume 2-issue-6-2095-2097
 
Volume 2-issue-6-2091-2094
Volume 2-issue-6-2091-2094Volume 2-issue-6-2091-2094
Volume 2-issue-6-2091-2094
 
Volume 2-issue-6-2085-2090
Volume 2-issue-6-2085-2090Volume 2-issue-6-2085-2090
Volume 2-issue-6-2085-2090
 
Volume 2-issue-6-2081-2084
Volume 2-issue-6-2081-2084Volume 2-issue-6-2081-2084
Volume 2-issue-6-2081-2084
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

149 152

  • 1. ISSN: 2278 – 1323 International Journal of Advanced Research in Computer Engineering & Technology Volume 1, Issue 4, June 2012 Industrial Automation using Windows Presentation Foundation & Model View View- Model Pattern Sameer Soni1, Pranali Dhete2, Shirish Patil3 and Dr B.B. Meshram4 Department of Computer Technology Veermata Jijabai Technological Institute, Mumbai, India Abstract — The paper focuses on flexible GUI development for industrial tool automation. Here we focus on tool for CNC machine automation developed using WPF (Windows Presentation Foundation) & MVVM (Model View View-Model) Pattern. The scheme allows flexible development of tool, better management of business intelligence and parallel code development without overlapping of concepts. The paper also considers the custom software tool development by multiple operators that share a commonality. MVVM architecture is an indirect successor of MVC pattern and it has successfully churned out the flaws of latter technique by removing dependency between model and controller by synchronizing View with ViewModel[1]. The main advantage now available is that parallel development & execution can be supported because ViewModel always has the status of View available with it. Industrial tool development often requires time and multiple developers for timely completion of project, and the approach suggested here is able to achieve the goal desired. Index Terms—Industrial Automation, CNC Tool, WPF, MVVM, Parallel development, Flexible GUI development I. INTRODUCTION while ensuring there is a minimum impact to the rest of Gear Metrology Industry is the essence of all tool based the code base, and thus supporting Industrial Automation. industries, and deals with accuracy and precision of This paper is organized as follows: first several manufactured tools like gears, hobs, shavers, etc. These approaches how GUI is usually made are presented in tools being the basic component of machinery, needs to Background, followed by a brief description about what be accurate in dimensions at micron level. For example, WPF and MVVM are. Next a concrete example is gears used for power transmission, has several angular provided that shows how WPF and MVVM can be used teeth and have a complicated design. For the machine to beneficially in Industrial Automation, followed by a work properly, their accuracy is prime necessity. sample application and conclusion of the paper. Now if the tool manufactured is quite accurate, then also it needs to avoid human errors, and so here we propose a II. BACKGROUND system for CNC machines. The software tool that we have developed will not only automate the manual This section will present some techniques that are used to create applications having a GUI. Those techniques are machine, but also raise the precision level to microns. The software tool will provide Graphical User Interface still valid and extensively used in contemporary for user to feed in values as per gear tool to be analyzed, application development but WPF and MVVM provide a step forward which is going to be described after this and the user will then select the option for checking the tool. The application would then instruct the physical section and is the purpose of this paper. testing machine to firstly identify the axis alignment and then test the tool for lead, profile, pitch and other A. Model View Controller (MVC) pattern parameters. MVC Pattern was created in late 1970’s[2]. In MVC After testing of tool, a report would be generated which pattern, a Model is used to represent data that the rest of will depict the variations between the actual tool and the the application needs. Physical storage is not a concern of expected values. So far this has been the overall the MVC pattern, but it is assumed that Model knows functionalities that are to be performed using the software how to store, load, handle and transform data based on application tool. the inputs it gets. Model notifies Views through a For making the desired application tool, a robust Controller when any change of the data occurs so Views development architecture and methodology is required can update themselves accordingly. View is a component that is able to allow changes and modification at later in the pattern that is used to display data to the actual user stage of development. These modifications include and had elements that allow user interaction such as hardware and software modifications that often involve buttons, textboxes, tabs, etc. GUI changes and additions on top of the basic design. In Model encapsulates the core data and functionality. View this paper I am going to talk about how Prime encapsulates the presentation of the data there can be Technologies copes with such needs for a software many views of the common data. Controller accepts input change by utilizing Windows Presentation Foundation from the user and makes request from the model for the (WPF) and Model View ViewModel (MVVM) design data to produce a new view. pattern to provide its customers with GUI of their choice 149 All Rights Reserved © 2012 IJARCET
  • 2. ISSN: 2278 – 1323 International Journal of Advanced Research in Computer Engineering & Technology Volume 1, Issue 4, June 2012 B. Model View Presenter (MVP) pattern behind such as business logic and data management Model View Presenter (MVP) developed in 1990s and modules. pattern is similar to MVC pattern called MVP Passive View. In Supervising Controller MVP variant, Presenter receives events from the GUI, triggers and update to the Model and Model notifies the View about its change which is accomplished via data binding. MVP is used among other things as the basis design for .NET development where View can be a Window/User-Control application, which is a regular desktop application, or a Web page, where Presenter has logic and data View needs to display itself properly. Result is that developers can greatly reuse their code and develop the application easily for 2 display mediums, and it also provides for automated testing of model and logic behind the View. View responsibility is to show the data provided by presenter, and purpose of the presenter is to reach to Fig 1. Sample WPF Application[3] model, retrieve the needed data, performs required processing and returns the UI prepared data to the view. B. MVVM Model View View Model (MVVM) [4] pattern was developed at Microsoft by John Gossman as a variation III. WPF AND MVVM PATTERN of the MVP pattern to leverage benefits and features of WPF for application development. Model contains the A. WPF data and does not know about the View or the Windows Presentation Foundation (WPF) is a next- ViewModel. ViewModel is an abstraction of the View, generation presentation system for building Windows and contains all of its data and state. client applications with visually stunning user ViewModel does not have a reference to the View class, experiences. With WPF, you can create a wide range of but a data binding mechanism is used where ViewModel both standalone and browser-hosted applications[3]. It is a data context of the View and View is bound to builds upon DirectX for drawing and rendering content properties ViewModel has. If some ViewModel property which gives developers and designers lots of tools to changes, View receives a new value and if View issues create graphically pleasing user interfaces. WPF some command, ViewModel executes the command. For introduces a common programming model and clearly example, ViewModel for a motion axis can have separates presentation from logic. WPF provides graphics properties as follows: axis name, position, speed, error services (2D, 3D, vector graphics) which are rendered on condition. View can have GUI elements such as labels or the graphics card GPU leaving minimal impact to the text boxes that are bound to those properties. If a CPU, provide powerful data binding mechanism, media position is changed while motor is driving the axis, services, layout engine so that the application can be position property value will change and View will always easily resized and/or displayed on various screen sizes have correct value to display. and does not use fixed point GUI widget placing as was the case before WPF, templates that are used to redefine how a GUI element looks (control template) or how data should be displayed (data template), animations, better text services, and so on. Thus, WPF is an extensive library full of features for creating very expressive GUI’s and is used in .NET development environment. Creation of GUI in WPF is done using XAML [5], which is XML- like declarative language, where GUI is created using XAML declarations and code logic behind GUI elements is created using one of the .NET languages such as C#. Sample XAML snippet can be seen in Fig 1[3] below. WPF however does not force a developer to use XAML Fig2. TextBox GUI widget bound to a ViewModel slider property. and all GUI can be created from code if one chooses to do so. However with XAML application designers can Binding as described is accomplished using dependency contribute to the software development lifecycle where property in WPF and is deeply embedded inside WPF their GUI design can be seamlessly and immediately used library and XAML. For example XAML in Fig 2 above in the actual application, developers do not need to defines such a text box, where values change on moving develop a GUI per design as it was customary prior to sliders. WPF. Thus, software can be developed in parallel - designers develop GUI while developers create code 150 All Rights Reserved © 2012 IJARCET
  • 3. ISSN: 2278 – 1323 International Journal of Advanced Research in Computer Engineering & Technology Volume 1, Issue 4, June 2012 IV. INDUSTRIAL AUTOMATION USING WPF & GUI widgets and layouts helps us in localizing our MVVM software, which was not possible using .NET WinForms where a widget had to be resized manually if localized Gear Testing Industries check and verify various text did not fit. industrial tools like gears and hobs, for multiple parameters like lead, profile, pitch, etc and prepare their Using MVVM pattern greatly improved our productivity report for their manufacturing accuracy and quality. and drastically reduced side-effect errors when a These reports are then used by the production department modification had to be done. With MVVM pattern we for improving their manufacturing process. were able to produce self contained modules consisting of For gear testing, these industries have been using manual Model and ViewModel parts for a certain object in our machines which involve measuring probes mounted on system, fully test it using testing harnesses. ViewModel horizontal and vertical axis, and their position and exposes properties and command objects a GUI (a View movement is regulated by hand held drives. The process in the MVVM pattern) can display or act upon. GUI is though delivers sufficient results, but requires quite changes or modifications do not require any changes of amount of hand skilled proficiency, and involves huge the ViewModel that has logic,etc and View does not have amount of risk of human error. any code behind – it is pure XAML having only GUI To overcome this flaw of human error, idea of automated look design declaration and data binding specification. machines i.e. CNC machines have been proposed, and are Thus, to customize a GUI for a specific customer we can they are widely used these days. Although it involves a only change the XAML portion of the application to huge investment at initial stage, but proves its real worth expose or hide a certain property or command binding in in longer run. It removes human error, is time efficient case more or less data is needed. To change physical and involves least manual operations and thus supports layout and design XAML is also easily changed. To do a Industry to automate. more involved change, we can create another ViewModel To support this automation in the CNC machine, the and corresponding XAML and other parts of the system background software and the embedded systems play a do not have to be modified because XAML can use vital role which provide these machines the logic and DataTemplate to select dynamically a View for a certain controls to behave as per commands. ViewModel object instance. Thus, main window XAML is minimally changed to register the new ViewModel and A. Need for Flexible Design rest of the application code remains unchanged. It should Each manipulator produced on a custom basis for a be noted that a bigger change may require changing of particular customer shares a lot of commonality in terms the other ViewModels and performing their testing again, of hardware, electronics and software but is also but at Inetec using WPF and MVVM pattern we have customized for a particular customer according to their reduced our time and effort to do changes to the GUI by specifications and expected needs. [6]Often times, there about 80% comparing with when WinForms .NET are requests to modify the GUI to suit specific customer application was developed and used. Effort in doing the need, add additional control component for a specific localization and making sure all GUI elements display custom application or make several GUIs to be used with correctly was reduced drastically to a similar percentage. the same equipment depending on the actual operator role. Thus, it is essential that software is flexible enough C. Parallel Development to accommodate those changes while not affecting other The Tool to be developed has several modules and each software code parts to prevent introducing the bugs as a module has various components in them. For a faster side-effect of the changes. Lastly, in today’s market of progress of events, these modules have been divided this specific industry, all parts of the system including among various team members, and then each of them software need to be fully localized to the native language worl on their own individual component[7]. A common and it is essential that technology used to develop such repository has been maintained at server where every software support this requirement seamlessly. developer commits his part of work, and thus the other developer can now access this updated work in his B. WPF and MVVM Solution for Flexible GUI working copy simply by updating the component. WPF was designed to greatly decouple GUI from the rest Thus, the cycle progresses and developments proceed in of the code to a far greater extent than it was possible distributed yet common fashion. using MVC/MVP pattern for GUI development. Here, we design all GUI components in XAML and declarative D. Sample Application nature of XAML speeds up GUI design process. Using This section briefly describes a 4-axis CNC Gear Testing WPF and XAML to define a GUI we can experiment Machine using MVVM pattern. Finished application easily and change/redefine the GUI quicker. Our would look like in Fig 3. The Main Window will allow designers can develop GUI design and work with the user to select various components like Gears, Hobs, customer and application departments to come up with a Stylus, Settings, Macros, Reports, and then as per intuitive design while development team focuses on logic functionalities chosen, he can either feed in the actual and other modules of the software application. Lastly, values, or tests the desired tool against the selected WPF support for localization in terms of auto sizing of standard. Following MVVM pattern, Main window has 151 All Rights Reserved © 2012 IJARCET
  • 4. ISSN: 2278 – 1323 International Journal of Advanced Research in Computer Engineering & Technology Volume 1, Issue 4, June 2012 its corresponding ViewModel that has a property list of movements of ellipses, changes in contours, and other multiple Screen ViewModels object instances and one graphical changes without affecting the background logic ViewModel for system instance. For each ViewModel, code base. there is a custom WPF user control created which corresponds to a View and is bound to properties of its Thus, WPF and MVVM can provide for a rapid prototype particular ViewModel. In XAML on the application level, development to be used quickly with a simple and then in a data template each ViewModel is registered to use a GUI can be further refined in function, visual cues and particular custom WPF user control. Thus, in graphic design with frozen and tested ViewModel code. MainWindow when <ItemsControl> GUI Widget is This has proven to be greatly beneficial for custom bound to property which is a list of ViewModels, it will software design, along with component reusability populate its items list with instances of Views defined in MVVM provides. the data template and would set the data context of View to a particular item in the list it was bound to – showing V. CONCLUSION (items) as in Fig 3. In this paper an application of new framework of WPF and MVVM has been presented that is more suitable to the needs and requirements of Tool Testing Industry that have to be reliable but also flexible to accommodate customer changes, specific requirements and future changes which company develops. Traditional MVC/MVP patterns provide a degree of separation between logic and GUI code, but WPF and MVVM take this a step further. Utilizing these two technologies proven to be greatly beneficial in our organization in terms of increased component reusability, fast response time to customer change requests, reduced side effects of such changes helping in maintenance of software and shared code base library, parallel development of GUI and code and reduced time to spend on localization. REFERENCES Fig 3. Sample application screenshot showing GUI structure. [1]. MVVM vs MVP vs MVC As ViewModel data changes, for example input values http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/ changes, View will display correct position in the textbox [2]. G Trygve M. H. Reenskaug, “MVC XEROX PARC 1978-79”. automatically due to binding. Thus, once ViewModel is http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html created along with corresponding user control implementing the View, things work automatically in [3]. Introduction to WPF .NET Framework 4 http://msdn.microsoft.com/en-us/library/aa970268.aspx WPF and MVVM framework. [4]. XAML in WPF http://msdn.microsoft.com/en-us/library/ms747122.aspx [5]. Introduction to Model/View/ViewModel pattern for building WPF apps – John Gossman http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx [6]. Flexible GUI in Robotics Applications Using Windows Presentation Foundation Framework and Model View ViewModel Pattern - Fran Jarnjak, IEEE 2010 [7]. Ergonomics Research and CNC machine tools in the interface design of the application - IEEE 2008 [8]. Microsoft Corporation. “Model View Presentter Pattern” (undated). http://msdn.microsoft.com/en-us/library/cc304760.aspx [9]. Microsoft Corporation, “Introducing Windows Presentation Fig 4. An intermediate Screen which allows selection of different Foundation” (undated). standards for left and right flank http://msdn.microsoft.com/enus/library/aa663364.aspx Also, it can be seen that different checking parameters can be applied on left and right flanks of tool to be tested. There are also several graphical changes which allow 152 All Rights Reserved © 2012 IJARCET