Desktop Applications
By: Cassiane Cladis and Elizabeth Lor
CSCI 5828 - Presentation 4
Index
- I. History
- II. What is a Desktop Application?
- III. Desktop vs Web Application
- IV. Different Tools/Frameworks for Desktop Applications
- V. Examples of Desktop Applications
- VI. Importance to Software Engineering
- VII. Popular Desktop Apps and Their Online Alternatives
- VIII. Additional Information
- IX. Citations
History
- IBM introduced a PC hardware platform on August 12, 1981.
- The PC used a text mode command-line style operating system known as Microsoft Disk Operating System (MS-DOS).
- In the 1990's, the MS-DOS was replaced with the graphical Microsoft Windows Operating System.
Microsoft Disk Operating System, Microsoft Windows Operating System
History Con't
- In 1991 and 1993, changes occurred that affected the world a great deal.
- The World Wide Web (WWW) gained popularity and traction in 1991.
- The Mosaic web browser application was announced in 1993.
World Wide Web, Mosaic Web Browser
History Con't
- Early applications were developed to be run from mainframe computers and accessed via low-tech terminal devices.
- However, the increased power and availability of powerful desktop computers ushered in an era of standalone desktop applications that were run locally on the PC.
- Additionally, the graphical user interface (GUI) was also making great strides in terms of accessibility and popularity.
II. What is a Desktop Application?
What is a Desktop Application?
- To start off, an application is a type of software that allows the users to perform specific tasks.
- According to PC Magazine, a desktop application is "an application that runs stand alone in a desktop or laptop computer", which is contrasted with a "web-based application, which requires the Web browser to run".
- Desktop applications run on desktop platforms whereas mobile applications run on smartphones and tablets.
- When a desktop application is opened, it runs inside the operating system until the user close it.
- More than one application can be open at the same time.
- This process is called multitasking.
What is a Desktop Application? Con't
- There are many desktop applications which fall into many different categories.
- Two of the categories are full-featured like Microsoft Word and "One or Two Things" like gadgets.
- A few types of desktop applications the users might use are:
- Word Processors: Microsoft Word
- Personal Finance: Quicken
- Web Browsers Internet Explore, Firefox, Google Chrome, Safari
- Games: Solitaire
- Media Players: Windows Media Player/iTunes
- Gadgets/Widgets: Calendars, Calculators, Maps
III. Desktop vs. Web Application
Desktop vs. Web Application
- StreetDirectory.com writes, "software application development began with desktop applications, which could be used on standalone machines only."
- Due to portability and better functions from usability point of view, web applications began to replace desktop applications.
- Web applications development "is usually made on client server architecture and use a web browser as the client interface."
Desktop vs. Web Application Con't
Features
Desktop Applications
Web Application
Rapid Development
Designed to be a quick and easy solution to building graphical user interfaces (GUIs)
Was never designed for rapid development. The "correct" way to create websites is using MVC (model, view, control)
Security
The program is running on the user's desktop; therefore this makes it harder for hackers to gain access to people's data
All of the user's data is stored online, taking just "one" hack to compromise "all" of the user(s) data
Desktop vs. Web Application Con't
Features
Desktop Applications
Web Application
Available Controls
There are a whole buffet of user interactive controls to choose from
No real controls except for the exception of HTML
Flexibility
Easy to write desktop applications that takes advantage of the user's hardware
Does not compare to the flexibility of desktop applications. Just stick with desktop application for your program
Desktop vs. Web Application Con't
Features
Desktop Applications
Web Application
Portability
Can be portable, but most are "not" and require manual installation from the user
Are "very" portable and will work with just about any computer with a decent web browser
Maintenance
Usually need to be manually updated to install updates
All updates are taken care of by the web application administrator(s) who updates the web application on the server(s)
Desktop vs. Web Application Con't
Features
Desktop Applications
Web Application
Privacy
Cracks and keygens are a common problem for desktop software vendors
Easier to protect against privacy with web applications and constantly update security
Payments
Up-front payments get all money right away which can improve cash flow
Often subscription based payments get a more predictable monthly income and potentially can increase revenue from customers
Desktop vs. Web Application Con't
Features
Desktop Applications
Web Application
Psychological
Customers are more willing to pay for desktop software - could be a question of ownership
Many users feel that web-based software and programs should be free
Availability
Desktop applications are locally installed and are always available
Web applications are dependent on an up and running server and an Internet connection
Desktop vs. Web Applications Con't
- Overall, deciding between web and desktop applications is now best determined by the project itself.
- Both platforms have pros and cons but there is room for both at the table.
- The line between desktop and web applications are becoming more blurred.
- Many desktop applications now use web protocols and embed web browsers.
- "Reports of the death of desktop software have been greatly exaggerated. Long-term trends have slights changed the balance in favor of the web apps for some types of products." -Andy Brice
IV. Different Tools/Frameworks for Desktop Applications
Mac Tools/Framework: XCode
XCode
- XCode was released in 2003.
- It is an integrated development environment (IDE).
- It contains a suit of software development tools developed by Apple for developing software for OS X and iOS.
- Tightly integrated with Cocoa and Cocoa Touch frameworks.
- XCode supports:
- C/C++/Objective-C/Objective-C++
- Java
- AppleScript
- Python
- Ruby
- Rez
- Swift
XCode Con't
- XCode has evolved from a programming language to a fully integrated interface
- Now on the Apple website the XCode interface boasts:
- Assistant Editor: Splits the Xcode editor in two with code on left and the interface on the right
- Jump Bar: Select what information to view in the Assistant editor
- Interface Builder: The design canvas makes it simple to prototype a full user interface without writing code. Laying out windows, buttons, and sliders.
- Version Editor and Source Control: Compare two versions of the file
- Testing: Instant feedback to execute individual tests or group tests.
Mac Tools/Framework: Cocoa Framework
Cocoa Framework
- Apple's native object-oriented application programming interface (API) for the OS X operating system.
- It consists of the Foundation Kit, Application Kit and Core Data frameworks.
- Apple provides development tools such as Xcode and Interface Builder to help Cocoa Frameworks develop applications.
- Fun Fact: The framework was called "KidSim" before it was renamed to Cocoa.
Cocoa Framework Con't
- Cocoa and Swift
- While Cooca and Cocoa Touch still have a strong following, the release of Swift has led some developers to wonder about the future
- The NS Hipster wrote that, "After just a few months of working with Swift, Cocoa has begun to lose its luster...Swift is designed with modern language features that allow for safer, more performance code."
- Cocoa and Cocoa Touch are based on Objective-C but the arrival of Swift might just be the beginning of the end for Objective-C. (As the NS Hipster points out, remember Carbon?)
Windows Tools/Framework: Visual Studio
Visual Studio
- It's an integrated development environment (IDE) from Microsoft.
- Microsoft Windows uses this tool to develop computer programs as well as web sites, web applications and web services.
- Microsoft software development platforms that are being used are:
- Windows API
- Windows Forms
- Windows Presentation Foundation
- Windows Store
- Microsoft Silverlight
Windows Tools/Framework: .NET
.NET
- This framework is a "runnable execution environment that manages applications that targets the .NET Framework".
- Programmers can take advantage of robust, reliable code for all major areas of application development through the common language runtime
- There are two major components:
- Common Language Runtime (CLR): execution engine that handles the running application
- .NET Framework Class Library: developers can call from their own application using the library of tested and reusable code
.NET Con't
- Services that .NET Framework provides:
- Memory Management
- CLR are responsible for allocating and releasing memory and for handling object lifetimes
- Common Type System
- Common to all languages that target the .NET Framework Class Library
- Development Framework and Technologies
- Libraries for specific areas of application development such as ASP.NET for web application, ADO.NET for data access and Windows Communication Foundation for service oriented applications
- Language Interoperability
- Routines written in one language are accessible to other languages which enables programmers to focus on creating applications in their preferred language or languages
.NET Con't
- Services that .NET Framework provides:
- Version Compatibility
- Applications that are developed using a particular version of the .NET Framework that can run without modification on a later version
- Side By Side Execution
- Allow multiple versions of the common language runtime to exist on the same computer meaning that multiple versions of applications can coexist and run on the version of the .NET Framework with which it was built
- Multitargeting
- Developers can create assemblies that work on multiple .NET Framework platforms such as Windows 7 - Windows 10, Windows Phone and Xbox 360
V. Examples of Desktop Applications
Microsoft Office
- Developed by Microsoft, it contains an office suite of applications, servers and services.
- It was developed on August 1, 1988 by Bill Gates.
- Microsoft Office contains sets of applications such as: Microsoft Word, Microsoft Excel, and Microsoft PowerPoint.
- This desktop application is available for both Windows and OS X.
- Through out the years, Microsoft Office has branched out to mobile versions and web-based versions.
- Download Microsoft Office
Adobe Photoshop CS3
- "The world's best digital imaging software".
- Photoshop is a raster graphics editor.
- Developed and published by Adobe Systems for Windows and OS X.
- It was created by Thomas and John Knoll in 1988.
- This application is used to create and manipulate images.
- Features of photoshop can be expanded by using Photoshop plug-ins.
- In 2013, Adobe switched Photoshop from a desktop-based application to web-based services.
- This switch meant that monthly updates are possible instead of large rollouts and universal access to files.
- Download Adobe Photoshop Products
VI. Importance to Software Engineering
Importance to Software Engineering
- Desktop application development is important to software engineering because of the functionality and importance of desktop applications.
- Desktop applications mean that engineers need to be focused on the users.
- Since the 1990s computers have become more user-friendly with more intuitive GUIs.
- Most users interact with their computers through applications instead of on or through the command line.
- In order for many users to work with computers, they need desktop applications.
Importance to Software Engineering Con't
- Desktop applications are still vital for PC users
- Browser applications such as Chrome and Firefox, make browsing the Internet possible for users who are unfamiliar with programmatic web.
- Desktop applications such as Excel are used widely for computing, data entry, and storage.
- Functions that are associated with using computers and technology are primarily desktop application interactions
- Particularly for software engineers and others doing high powered computing, the power and functionality of desktop applications are crucial.
Importance to Software Engineering Con't
- In an interview Josh Marinacci, a prominent open-source engineer, said that for both security and power reasons he believes that installed software will always be around.
- Successful applications in the future need to be a hybrid of the both but there will always be a place for desktop application engineers
- However, these future engineers will need to broaden their scope and be able to design with web and desktop tools
VII. Popular Desktop Apps and Their Online Alternatives
Popular Desktop Apps and Their Online Alternatives
- ApplicationOnline AlternativeDescriptionMicrosoft Office 2007Google DocsGoogle Docs can create the same applications for creating word documents, spreadsheets and presentations as Microsoft OfficeAdobe Photoshop CS3PixlrPixlr is an online photo image editing application that contains similar editing tools found in Photoshop CS3Microsoft Visio 2007GliffyGliffy has the functionalities to create and share flow charts, complex diagrams or technical drawingsAdobe Acrobat 8.1PDF Converter Facebook AppsPDF Converter Facebook Apps can create PDF from a variety of formats for free on Facebook simply by uploading your file
Popular Desktop Apps and Their Online Alternatives Con't
- ApplicationOnline AlternativeDescriptionApple 1 Password Manager and Form Filler 2.5.7ClipperzClipperz allows you to create direct log in links for your online accounts.Apple Aperture 1.5FlickrFlickr is an online photo management and sharing siteMicrosoft Office Outlook 2007GmailGmail accounts have many space, instant messaging, built in search technology and no banner adsVistaYouOSYouOS is a virtual OS that allows users to customize without the hefty price or desktop trappings
Popular Desktop Apps and Their Online Alternatives Con't
- ApplicationOnline AlternativeDescriptionAdobe Dreamweaver CS3Adobe Flash CS3 ProfessionalApp2youApp2you is a web service that allows users to own simple web application without any coding or web designing experienceDesktop CalculatorsInstaCalcInstaCalc is an advance web based calculatorMS OutlookHP Fax MachinePrinting PaperFaxZEROFaxZERO is an internet faxing service which allows users to send digital documents within Canada and the US for free
Popular Desktop Apps and Their Online Alternatives Con't
- ApplicationOnline AlternativeDescriptionSharpReader (Windows) / NetNew Wire (Mac OS X) / Straw (Linux)NetvibesNetvibes is a RSS reader and web home pageWebsite Analysis SoftwareGoogle AnalyticsGoogle Analytics is an online tool that allows users to keep track of their website and how it is being accessedMSN MessengerGoogle Talk ICQAIM JabberYahoo!MeeboMeebo is a web portal for instant messaging that allows users to chat online without having to download anything
Popular Desktop Apps and Their Online Alternatives Con't
- ApplicationOnline AlternativeDescriptionAll Desktop ToolsSosiusSosius has the essential desktop tools online from the calendar to file management, to file management and many moreDesktop Task ListsRemember The MilkRemember the Milk is an online to-do list that provides users with easy access to reminders and notesMicrosoft OneNote 2007Note.lyNote.ly is an online alternative to create notes directly in your browser
VIII. Additional Information
Downloads for Tools/Frameworks
Citations
- Bychkov, Dmitriy. "Desktop vs. Web Applications: A Deeper Look and Comparison." Segue Technologies. 7 June 2013. Web. 7 Dec. 2015. "http://www.seguetech.com/blog/2013/06/07/desktop-vs-web-applications-deeper-comparison".
- Smith, Jeff. "Desktop Applications Vs. Web Applications." Streetdirectory.com. Web. 7 Dec. 2015. "http://www.streetdirectory.com/travel_guide/114448/programming/ desktop_applications_vs_web_applications.html".
- "Pros and Cons to Web and Desktop Applications." The Lagoon Tech. 4 Aug. 2015. Web. 7 Dec. 2015. "http://blog.computerlagoon.com/2015/08/04/pros-and-cons-to-web-and-desktop-applications/".
- "Xcode." Wikipedia. Wikimedia Foundation, 5 Dec. 2015. Web. 7 Dec. 2015. "https://en.wikipedia.org/wiki/Xcode".
- "Computer Basics: Understanding Applications." GCFLearnFree.org. Goodwill Community Foundation, Inc. Web. 13 Dec. 2015. "http://www.gcflearnfree.org/computerbasics/3".
Citations Con't
- "Xcode." Apple Developer. Web. 7 Dec. 2015. "https://developer.apple.com/xcode/ide/".
- "Microsoft Visual Studio." Wikipedia. Wikimedia Foundation, 4 Dec. 2015. Web. 8 Dec. 2015. "https://en.wikipedia.org/wiki/Microsoft_Visual_Studio".
- "Getting Started with the .NET Framework." Microsoft. Web. 8 Dec. 2015. "https://msdn.microsoft.com/library/hh425099(v=vs.110).aspx".
- "Popular Desktop Apps And Their Online Alternatives." PDF Blog. 18 Dec. 2007. Web. 8 Dec. 2015. "http://www.investintech.com/resources/blog/archives/78-popular-desktop-apps-and-their-online-alternatives.html".
- "Adobe Photoshop." Wikipedia. Wikimedia Foundation, 9 Dec. 2015. Web. 10 Dec. 2015. "https://en.wikipedia.org/wiki/Adobe_Photoshop".
- Dachis, Adam. "What Photoshop's Move to the Cloud Actually Means for You." Lifehacker. 7 May 2013. Web. 10 Dec. 2015. "http://lifehacker.com/what-photoshops-move-to-the-cloud-actually-means-for-y-494225482".
- "Microsoft Office." Wikipedia. Wikimedia Foundation, 6 Dec. 2015. Web. 10 Dec. 2015. "https://en.wikipedia.org/wiki/Microsoft_Office".
Thank you for a great semester!
0 out of 49
Desktop Applications
By: Cassiane Cladis and Elizabeth Lor
CSCI 5828 - Presentation 4