Windows Application vs Windows Form Application

Anything you want to tell us? Praise? Criticism? Post it here. Please keep it professional and constructive.
Forum rules
Do not post any licensing information in this forum.
User avatar
Posts: 16
Joined: Thu Jan 10, 2019 4:21 pm

Windows Application vs Windows Form Application

Post by D.Leaman » Fri Jan 25, 2019 9:27 pm

In a recent blog post Alex talked about how to create a notepad-esque application using PowerShell and the SAPIENHost object.

We're looking into building an application just like this for our service desk and I'm wondering, what are the benefits are of doing this over using a Forms project with a RichTextBox anchored and a MenuStrip?
J.B. Hunt
Devin Leaman

User avatar
Alexander Riedel
Posts: 6836
Joined: Tue May 29, 2007 4:43 pm

Re: Windows Application vs Windows Form Application

Post by Alexander Riedel » Sat Jan 26, 2019 2:53 am

That really depends on your use case. The blog post illustrates a sample, it is far from complete. For example the loop at the end sleeps a second between processing commands. So if you were to click really rapidly on three different topics only the last one would be executed.
In a real application you would use some type of queue for the commands. We are still building this out, but I'll give you some pro and cons.

Windows app with SAPIENHost:
- UI and PowerShell on separate threads means UI remains responsive while Powershell processes a length statement
- Future features will allow easier thread control on PowerShell code as well as swapping out views during runtime (no, no timeline for that)
- The SAPIENHost has preset methods for file open, save as, select folder etc dialog. (Document in a soon to come blog post)

- You cannot currently debug this in the debugger. It doesn't know to create a window to show the UI and output.
- This will only run when packaged as an exe. You script will not run standalone as a PowerShell Script

Windows Forms project
- You can debug the code in our debugger
- The script runs standalone and/or packaged
- You have control over additional application events, such as resize, close etc.
- You can add buttons and additional controls to your UI if needed

- UI and PowerShell run on the same thread. Depending on your code that may make your UI unresponsive while
longer PowerShell statements run

That's just what I can think of on top of my head. The app model is new. Which also means I am more likely to add cool new things :D
Alexander Riedel
SAPIEN Technologies, Inc.