Sunday, 4 January 2015

Mobile Application

       A mobile application, most commonly referred to as an app, is a type of application software designed to run on a mobile device, such as a smartphone or tablet computer. Mobile applications frequently serve to provide users with similar services to those accessed on PCs. Apps are generally small, individual software units with limited function. 
           This use of software has been popularized by Apple Inc. and its App Store, which sells thousands of applications for the iPhone, iPad and iPod Touch.
  

              A mobile application also may be known as an app, Web app, online app, iPhone app or smartphone app. Mobile applications are a move away from the integrated software systems generally found on PCs.
       Instead, each app provides limited and isolated functionality such as a game, calculator or mobile Web browsing.Although applications may have avoided multitasking because of the limited hardware resources of the early mobile devices, their specificity is now part of their desirability because they allow consumers to hand-pick what their devices are able to do.
             The simplest mobile apps take PC-based applications and port them to a mobile device. As mobile apps become more robust, this technique is somewhat lacking. A more sophisticated approach involves developing specifically for the mobile environment, taking advantage of both its limitations and advantages.

              For example, apps that use location-based features are inherently built from the ground up with an eye to mobile given that you don't have the same concept of location on a PC.

Windows Application


        Windows Forms is a set of managed libraries in .NET Framework designed to develop rich client applications. It is a graphical API to display data and manage user interactions with easier deployment and better security in client applications. 


Windows Forms offers an extensive client library providing interface to access native Windows graphical interface elements and graphics from managed code. 
         It is built with event-driven architecture similar to Windows clients and hence, its applications wait for user input for its execution. 
Windows Forms is similar to Microsoft Foundation Class (MFC) library in developing client applications.         It provides a wrapper consisting of a set of C++ classes for development of Windows applications. However, it does not provide a default application framework like the MFC.

  • Windows Forms classes can be extended, using inheritance, to design an application framework that can provide high level of abstraction and code reusability.
  • Forms should be compact, with controls on it limited to a size that can offer minimum functionality. Additionally, the creation and removal of controls dynamically can reduce the number of static controls.
  • Forms can be broken into chunks packaged in assemblies that can automatically update itself and can be easily managed with minimal effort.
  • Designing the application to be stateless provides scalability and flexibility with ease for debugging and maintenance.
  • Windows Forms applications should be designed based on the level of trust required, the need to request for permissions, and handle security exceptions wherever necessary.
  • Windows Form cannot be passed across application domain boundary since they are not designed to be marshaled across application domains.

Console Application

         A console application is a computer program designed to be used via a text-only computer interface, such as a text terminal, the command line interface of some operating systems (Unix, DOS, etc.) or the text-based interface included with some Graphical User Interface (GUI) operating systems, such as the Win32 console in Microsoft Windows.

       A user typically interacts with a console application using only a keyboard and display screen, as opposed to GUI applications, which normally require the use of a mouse or other pointing device. Many console applications such as command line interpreters are command line tools, but numerous Text User Interface (TUI) programs also exist. 

     As the speed and ease-of-use of GUI applications have improved over time, the use of console applications has greatly diminished, but not disappeared. Some users simply prefer console based applications, while some organizations still rely on existing console applications to handle key data processing tasks.

     The generation of console applications is kept as a feature of modern programming environments such as Visual Studio and the .NET Framework on Microsoft Windows because it greatly simplifies the learning process of a new programming language by removing the complexity of a graphical user interface (see an example in the C# article).

         For data processing tasks and computer administration, these programming environments represent the next level of operating system or data processing control after scripting. If an application is only going to be run by the original programmer and/or a few colleagues, there may be no need for a pretty graphical user interface, leaving the application leaner, faster and easier to maintain.