0 Replies Latest reply: Nov 8, 2013 3:24 PM by Michael Tarallo RSS

    How would you define a framework?

    Michael Tarallo

      In an effort to reduce the amount of ambiguity our English language <sarcastic>so graciously offers</sarcastic>, we sometimes use analogies to simplify the concepts and provide context to our terminology. For example, when discussing the term "Framework" there are a number of definitions that require additional context to really identify what is meant.

       

      Here is an analogy I came up with - feel free to post your comments and thoughts!

       

      Regards,

       

      Michael Tarallo

      Sr. Technical Product Marketing Manager

      QlikView and QlikView Expressor

      Follow me @mtarallo

       

       

      What is a Framework?

      framework.png

       

       

      In its simplest form, a Framework can be described as an ideal structure of something that is designed to reduce the most common and repetitive tasks. Take a moment and think of your home. Before it can provide shelter, entertainment or even privacy, you need a basic structure or frame that will support … well, everything else. Without a frame, your home would be unprotected from the weather, there’d be no place to plug in your game console, and you could not shut out your mooching neighbor. The frame enables you to develop your home into something suitable and of value. If your home’s design is effective and provides the most common amenities desired by the mainstream population – it may become a model for building the perfect home. Furthermore, prefabricating some of the home’s most common components will make it even quicker and easier to assemble, in turn saving time and money. In comparison, this simple analogy describes the basic concepts behind a software framework.


      What is a Software Framework?


      A Software Framework provides common, generic functionality used with a specific software platform to develop applications, products and solutions. Notable software frameworks include Ruby on Rails (Web), .NET Framework (Microsoft), Prototype (JavaScript), Spring (Java) and the various iOS Frameworks (Apple). Often bundled with utilities, common reusable interfaces and best practices, software frameworks deliver the most optimal strategy for building and managing applications by reducing development time and increasing compatibility. For example, if I was to build software for a Bluetooth heart monitor and a companion iOS app, I would not code the Bluetooth interface from scratch. I would use the iOS Core Bluetooth Framework which has common interfaces I can selectively modify as needed in order to work with the devices and apps. Therefore I can focus my attention on my actual application and its specific functionality and not invest time in understanding the Bluetooth details.

       

      mix_apps.png