The Learn Programming AcademyThe Learn Programming Academy
  • Home
  • Courses
  • Meet The Team
  • Blog
  • About Us
  • Contact
  • Home
  • Courses
  • Meet The Team
  • Blog
  • About Us
  • Contact

Programming

  • Home
  • Blog
  • Programming
  • The Kind of Apps That You Are Not Building, and Should

The Kind of Apps That You Are Not Building, and Should

  • Posted by Eduardo Rosas
  • Categories Programming
  • Date September 11, 2018
  • Comments 0 comment

Mobile apps have taken over the world, there’s no denying that.

Web applications are also super popular, and as customers we judge brands and businesses based on the quality (and availability) of their apps.

But there is one kind of app, a very important one, that businesses still require and use every single day that you may not be offering to your clients: the desktop app.

Think about apps that are offered as desktop apps simply because it makes sense, we spend a lot of our time, especially at work, on our computers. Evernote, Slack, iTunes, Photoshop, AutoCAD, Chrome, Visual Studio, Word, PowerPoint, Excel, 1Password…

These are some examples of apps that are built for the masses to download, but for desktop, there is an almost unique demand for custom applications – applications with some very specific functionality required by the eventual users.

Maybe the receptionists across the entire company require a custom software to keep track of appointments; maybe a custom CRM is needed, or HR may want to keep track of employees in a unique way that common software doesn’t allow them to do.

When the power of a PC is necessary for an app, or the app needs to run on a local PC, desktop apps are the ones to build.

With Windows being the second most popular Operating System in the planet (only after Android), it is Windows Presentation Foundation the platform that you should target when building desktop apps.

WPF allows you to build apps that will run on Windows 7, 8 and 10 (which account now for about 93% of Windows computers according to Stat Counter), with almost no limitations. You could even still target Windows XP, but I don’t recommend you do.

WPF has been used for years to create very powerful applications since there is virtually no limit to what you can do with it.  This is unlike apps that need to be downloaded through an App Store, which are built with an entirely different architecture and are executed in a sandbox.

WPF applications could then access native functionality that store applications may not, or use more resources while store applications are limited to what Microsoft, or Apple or Google dictate.

How Are WPF Apps Created?

If you are interested in creating this kind of applications, you will first need a Windows computer, or of course a Windows VM, and install Visual Studio 2017 making sure you install the tools for Windows desktop development. From there you will need to use a couple of languages to create your apps.

So let’s talk about those languages: XAML and C#. There is an added benefit to learning those languages that I’ll talk about later in this post, for now let’s focus on how will you be using them both, and why the combination of both makes for an amazing development process.

XAML

The eXtensible Application Markup Language, or XAML, is a markup language that you will use to define the interfaces of your apps. Similar to how you would use HTML (another markup language) to define the interface of a website, you can use XAML to define your windows and pages and any element that WPF applications have.

Of course, there is a way to not use XAML at all – by simply dragging and dropping elements from a toolbox into a designer.  But – spoiler alert! – learning XAML will improve the quality of your apps enormously; not because they will look better (I guess you can achieve the same result by dragging and dropping), but because the code will be more elegant, efficient, and eventually you can use your XAML skills for greater things (more on that in a second). So, take my advice and learn this language as you build your WPF apps.

Use XAML Right!

As you start using XAML you will probably feel like it’s a ton of work, and that you should simply use the designer and drag and drop elements to it. Resist these thoughts. At the beginning of course it will take a bit more time to do so the right way, but eventually you’ll know XAML like the back of your hand, and then is when you unlock so much more potential.

When using XAML right, you can use it not just as the code that defines how your apps look, but also how the interface connects to your data, works with the required formats, and reacts to user interactions.

I won’t go into more detail, but achieving this will make working with designers so much easier (they can see in real time as they create the UI, the sample data that you can see, in design time with no need to run the app, retrieving from some sample data source) and help you separate the elogic from the graphic interface entirely.

C#

This is the language that you will use to create the logic of your application, its functionality. As with any other language, there is a learning curve if you are coming from another language, but if you know how to code, you can easily adapt to C#’s syntax and start falling in love with its elegancy.

C# is often described as a very powerful high level language, dragging some benefits from C and C++ to a modern language that is super easy to understand. Some joke that with C# you don’t need to document or comment your code (that’s wrong, always do that).

The Hidden Benefits Of Creating WPF Apps

While adding desktop app development to your resume is a great idea, it will greatly expand the kind of applications that you can create and increase the problems that you can solve for your clients, learning to build WPF apps also comes with a “hidden” benefit.

Like I said, WPF apps are built with XAML and C#, and it turns out that with those skills you will acquire as you create your desktop apps you can build iOS and Android apps as well. Actually, even Windows store and macOS apps as well.

These two languages are the same ones that are used to create Xamarin apps (which I have talked about in a different post), and Xamarin allows you to build entirely native apps using these languages. Suddenly, you only have to learn two languages to build native applications for all kinds of apps.

Perhaps then, as you add desktop app development to your list of skills, you should decide to focus and learn those two languages fully since they will be so useful no matter the app you are building.

Few language combinations offer such versatility, so learning them could be one of the best investment decisions you make!

Why not take a look at my Windows presentation foundation masterclass on Udemy? It’s designed to help you learn and get up to speed with building WPF quickly.

  • Share:
mm
Eduardo Rosas
    I am a Software Engineer and Xamarin-Certified Mobile Developer (just got my certification renewed on September 11th, 2017, yay!) I have been developing mobile apps for 6 years now, I started when iOS 5 had just been released! During this years I have created apps for clients, both for private use and for public use. I have created some apps that I wanted to release to the app stores, and have created a lot of apps just for fun. The main platform I use is Xamarin, so I can code Android, Windows, iOS and macOS apps using my favorite language: C#. I have helped literally thousands of students to learn how to code, both online and in-person, and it has become my passion. I also love to design apps, whenever I get a little bit (or a lot) stressed when coding, I design apps, either out-of-the-blue concepts, or the next app that I have to code, or a design for a client. I like to think of myself as an entrepreneur, I am the co-founder of a startup, AlphaBeta, focused on helping Mexicans to adopt digital technologies in their lives, so they become more efficient, and live better lives. In AlphaBeta I have learned (and taught) how to use tools like Google Classroom, Power BI (super popular with SMEs) and Adobe Experience Design, and some of those courses, have been brought here as well. My students usually say that I know how to make difficult subjects easy to understand and that I help them learn in the best way possible: by doing.

    Previous post

    3D Programming Made Easy!
    September 11, 2018

    Next post

    Why Learn PHP?
    September 12, 2018

    You may also like

    The Complete JavaScript Course for Developers
    16 January, 2019

    Recently a student in my The Complete JavaScript Course for Developers course asked about the capabilities and limitations of JavaScript. Specifically, can JavaScript collect and handle data from a user in a mobile environment. The answer is an unequivocal “yes” …

    Java 11 has Arrived. Is it time to panic?
    27 September, 2018
    java11
    Kotlin – Java Developers Have a Head Start
    26 September, 2018
    Kotlin – Java Developers Have a Head Start

    Leave A Reply Cancel reply

    Your email address will not be published. Required fields are marked *


    Popular Courses

    Java Masterclass 2025: 130+ Hours of Expert Lessons

    Java Masterclass 2025: 130+ Hours of Expert Lessons

    Learn Python Programming Masterclass

    Learn Python Programming Masterclass

    Beginning C++ Programming – From Beginner to Beyond

    Beginning C++ Programming - From Beginner to Beyond

    SQL for Beginners: Learn SQL using MySQL and Database Design

    SQL for Beginners: Learn SQL using MySQL and Database Design

    C Programming For Beginners – Master the C Language

    C Programming For Beginners - Master the C Language

    Data Structures and Algorithms:  Deep Dive Using Java

    Data Structures and Algorithms: Deep Dive Using Java

    • Privacy Policy
    • Terms & Conditions

    logo-eduma-the-best-lms-wordpress-theme

    +61 422 512 549

    [email protected]

    Company

    • About Us
    • Blog
    • Contact
    • Become A Co-Instructor

    Links

    • Courses
    • FAQs
    • Contact Us

    logo-eduma-the-best-lms-wordpress-theme

    +61 422 512 549

    [email protected]

    Company

    • About Us
    • Blog
    • Contact
    • Become A Co-Instructor

    Links

    • Courses
    • FAQs
    • Contact Us

    • Privacy Policy
    • Terms & Conditions

    Would you like to become a Udemy Course Co-Instructor?

    Struggling to find students? Let us publish and promote your course to our students.

    FIND OUT MORE NOW