Windows 8 Architecture from a Developer’s Point of View : Picking the Appropriate Technology for Your Project

3/11/2014 9:22:53 PM

In addition to the programming language and development technology, there is another important consideration scarcely mentioned before. Windows 8 totally changes not only the way users work with applications, but also the way they discover, install, and remove programs. This new installation model may inspire you to create Windows 8 style applications instead of desktop apps, so this might be a good time to take a brief overview of it.

The Windows Store

In previous Windows operating systems, you had to create installation kits and deploy your applications by running those kits on the target computers. Your users had to understand a few technical details of the installation process, such as selecting the target folder, installing prerequisites, adding shortcuts to the desktop, and so on. Often, the installation process was a source of fear — will this installation override something on your computer to prevent other applications from running properly? Further, unnecessary applications had to be removed and often cleanup utilities were needed to remove the garbage heap left by those apps.

The consumer-centric approach cannot work without a significantly easier way of obtaining and releasing applications. Windows 8 style applications can be installed only from the Windows Store, which is an online service. As a developer, you can upload your application to the Windows Store, where it goes through an approval process before users can discover and install it. As a user, you can find an application in the Windows Store and, after buying it (or choosing to try it free, or even using it free when the application allows it), let the operating system install the app for you. If you do not need the application any more, Windows 8 will instantly uninstall it and take care of the cleanup process — releasing all resources held by the app.

Windows 8 or Desktop Applications?

The first thing you should decide is whether you want to create Windows 8 style applications or desktop applications. Table 1 helps with your decision by distinguishing a few points of consideration.

Table 1: Helping Points to Choose between Windows 8 Style and Desktop Applications

Use Windows 8 Style Applications When…Use Desktop Applications When…
You have no, or very little, experience in Windows programming.You have more experience in Windows programming — moreover, you’re a seasoned Windows programmer.
You’re focusing on applications with a superior user experience.You’re focusing on applications where you intend to utilize the UI technologies (Windows Forms, WPF, or Silverlight) you already know.
You have a relatively small UI codebase to reuse.You have a large amount of code related to the UI, and you want to reuse the knowledge carried by that codebase.
Your application works on a single Windows computer. Your application’s primary focus is providing a UI for services and remote components accessed through the Internet (or company intranet).Your application is distributed into several components, including UI, business services, and databases. UI application components use legacy, vendor-specific, or proprietary communication technologies to access other services.
Your application intends to leverage the user experience and device features offered by mobile devices, such as a tablet.Your application is primarily used on desktop computers and/or integrates with existing applications.
You want to leverage the easy application deployment model offered by the Windows Store.You need a more complex deployment model than provided by the Windows Store.
You can use (that is, you are allowed to use) C++, C#, Visual Basic, or JavaScript programming languages to create your application.Besides the set of C++, C#, Visual Basic, and JavaScript, you need to use other programming languages heavily to create your application.

If you participate in a complex project, you obviously cannot use the Windows 8 style technology stack for the entire project — often you need to do server-side development. However, it is worth examining the UI components of your system that you can put through and that might be implemented as Windows 8 style applications.

Choosing a Programming Language

You can use several languages for Windows 8 style application development — C++, C#, Visual Basic, and JavaScript. If you prefer any of them, do not hesitate to start using that language.

If you have no or very little experience with Windows programming, or are uncertain which language would have the shortest learning curve, here are several clues to help with your decision:

  • If you have experience with web page design and website creation, you certainly know HTML, and probably have experience with CSS and JavaScript. Start creating your first Windows 8 style programs with JavaScript.
  • If you have used macros in Microsoft Word and Excel, Visual Basic is probably the language you should start with.
  • If your experience is about programming algorithms rather than UI, then C++ and C# are your best choices. C# is probably easier to learn; C++ provides more control over low-level programming constructs.

One of the best things about Windows 8 style application programming is that you are not obligated to stick to only one language! You can even use more than one programming language within an application. For example, if you have web programming experience with JavaScript, you may create your UI with HTML and JavaScript, but still consume more complex application logic written in C# and high-performance algorithms programmed in C++.

Even if you start application development with one of these languages, it is worth learning other ones — because each of them has its own strength. When you have short deadlines or want to be more open toward other platforms, knowing several languages and getting used to mixing them reasonably is invaluable.

  •  Windows 8 Architecture from a Developer’s Point of View : .NET Framework 4.5
  •  Windows Server 2008 R2 Powershell Cmdlets (part 6) - Windows Server Backup cmdlets
  •  Windows Server 2008 R2 Powershell Cmdlets (part 5) - Server Manager cmdlets
  •  Windows Server 2008 R2 Powershell Cmdlets (part 4) - Group Policy cmdlets
  •  Windows Server 2008 R2 Powershell Cmdlets (part 3) - Failover Cluster cmdlets
  •  Windows Server 2008 R2 Powershell Cmdlets (part 2) - AppLocker cmdlets
  •  Windows Server 2008 R2 Powershell Cmdlets (part 1) - Active Directory cmdlets
  •  Windows Server 2008 R2 : PowerShell V2 feature focus - Installing Powershell, Introduction to Powershell Scripting
  •  Windows Server 2008 R2 : PowerShell V2 feature focus - Introduction to Powershell
  •  Installing Windows 8 on startup VHD files (part 3) - Starting the system from the VHD, Removing VHD installations
    Top 10
    3 Tips for Maintaining Your Cell Phone Battery (part 2) - Discharge Smart, Use Smart
    3 Tips for Maintaining Your Cell Phone Battery (part 1) - Charge Smart
    OPEL MERIVA : Making a grand entrance
    FORD MONDEO 2.0 ECOBOOST : Modern Mondeo
    BMW 650i COUPE : Sexy retooling of BMW's 6-series
    BMW 120d; M135i - Finely tuned
    PHP Tutorials : Storing Images in MySQL with PHP (part 2) - Creating the HTML, Inserting the Image into MySQL
    PHP Tutorials : Storing Images in MySQL with PHP (part 1) - Why store binary files in MySQL using PHP?
    Java Tutorials : Nested For Loop (part 2) - Program to create a Two-Dimensional Array
    Java Tutorials : Nested For Loop (part 1)
    - First look: Apple Watch

    - 3 Tips for Maintaining Your Cell Phone Battery (part 1)

    - 3 Tips for Maintaining Your Cell Phone Battery (part 2)
    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 1)

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 2)

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 3)
    Popular Tags
    Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8 BlackBerry Android Ipad Iphone iOS