Skip to main content. This browser is no longer supported. Download Microsoft Edge More info. Contents Exit focus mode. Please rate your experience Yes No. Any additional feedback? Submit and view feedback for This product This page.
Tom May is an award-winning journalist and editor specialising in design, photography and technology. He was previously editor of Professional Photography magazine, associate editor at Creative Bloq, and deputy editor at net magazine. Adobe Photoshop. Specifications Used for: Image editing and manipulation, photo retouching, graphic design, web and app prototyping, 3D modelling.
Payment model: Subscription. Free trial: 30 days. Platforms: Mac, Windows, iPad. Reasons to avoid - Expensive. Adobe Illustrator. Specifications Used for: Illustration, designing vector graphics. Affinity Designer.
Professional-grade rival to Illustrator, at an affordable price. Payment model: One-off purchase. Free trial: 90 days. Reasons to avoid - Lacks some advanced tools. Affinity Photo. Specifications Used for: Image editing and manipulation, photo retouching, graphic design, web and app prototyping.
Reasons to avoid - Lacks some advanced features. Specifications Used for: Vector illustration, page layout, image editing and manipulation. Payment model: One-off purchase or subscription. Free trial: 15 days. Platforms: Mac, Windows.
Reasons to avoid - Not cheap. Adobe InDesign. Specifications Used for: Desktop publishing. Free trial: Yes. Reasons to avoid - Requires subscription. Affinity Publisher. Adobe XD.
Specifications Used for: Web and app prototyping. Payment model: Free or subscription. Free trial: No, but there is a free version. Reasons to avoid - Premium tools require subscription.
Photoshop Elements. Specifications Used for: Image editing and manipulation, photo retouching. Reasons to avoid - Not suitable for pros. Payment model: Free. Platforms: Mac, Windows, Linux. Reasons to avoid - Works slowly. Specifications Used for: Designing social media graphics, presentations, posters, brochures. Reasons to avoid - Not as full-featured as others.
Specifications Used for: Photo editing and manipulation. The magic behind Electron is that it uses Node. Js and Chromium to create a Web View in a desktop window. Electron gained some popularity for a while and there are great applications developed with it like Slack , GitHub Desktop and Visual Studio Code. Both are cross-platform. JavaFX is newer and encouraged by Oracle as a replacement for Swing, but it has relatively low adoption.
Swing, on the other hand, is older and more widely used, but still less popular for Windows applications than WPF or WinForms. An example of an application written with Qt is Maya. Choose a Deployment Strategy How do you plan to deliver your software to your customers?
It takes care of publishing and updates for you. ClickOnce takes care of packaging your App, Installing it and Updating it. There is some bad reputation around ClickOnce in the community and I would be very careful about choosing this technology. Chocolatey is an interesting solution to distribute your app and easily publish updates.
It requires the user to install Chocolatey on his PC and then use the command line to install and update your app. More suited for developer customers. The custom solution: Use an Installer and develop the update mechanism yourself. From my experience, this is the preferred solution for many companies. The idea is to publish your product version install files to a known network location, and the Desktop Application will endlessly query that location for new updates.
Of course, you will need to handle a bunch of issues yourself like Manifest files , Certificate verification and so on. Deployment tools like ClickOnce and Squirrel already include an Installer of their own. There are some great installers at your disposal: InstallShield — Claims to be the industry standard installer for Windows applications.
Well, it sort of is. You can work with a development studio to choose all the tasks the installer should do. Also, InstallShield has its own scripting language called InstallScript to write custom jobs.
Inno Setup is a popular free installer, I used it and was very happy with it. You basically create a text file.
Scripts are written in Pascal language. InnoSetup has good documentation and a good-sized community. On an update, InnoSetup will uninstall the previous version and install the new one.
Wix is another popular free installer. It can do the following: Pull latest code from repository Compile your code and check for errors Run Unit Tests Create an Installation package Deploy your application if needed The above bullet points are just an example of course. There are several standard logging and troubleshooting solutions you can and should implement in your Desktop Application: Standard logging to file.
There are several logging libraries available, most known being Log4net and NLog. Logging directly to Windows Event Logs is another fast and reliable way to log, though It will be a bit harder to retrieve those logs. Reporting a Problem mechanism is a great way to monitor your Desktop Applications.
After recognizing an Exception or Crash you can send your log files and exception details to some designated server. Similar to a Picture being worth a thousand words, a Dump is worth a thousand log files. You can attach your dumps to the Report a Problem mechanism.
Theming your application Having much experience in this matter, I would suggest creating your application with Theming considered in advance. There are two common scenarios where you would need Theming: When you are building a B2B application, your customers might want different branding for the application.
For a consumer app, you might want to give your users a choice for a custom look and feel. This might be different colors, different control styles and so on. Purchasing Controls Depending on your applications, you might want to consider purchasing a Control suite. When considering buying 3rd party controls, I take into account these factors: How customized should your controls be?
If your product team needs really specific controls, then you might as well make them yourself instead of buying 3rd party controls and modifying them. How experienced is your team? Estimate how much money it will take to develop the controls yourself instead of buying them. Is it worth the price? There are some free suites as well. For example, Xceed offers a free toolkit. How much time for development do you have? Buying 3rd party controls will save a lot of time you can use for developing the rest of your app.
Basically, there are 4 types of licensing, which you can choose from or even combine: Product key — Your customer pays you and receives a product key string.
That product key is entered within the application, validated, and everything works. Some key points are: Do you validate the license key locally or on a network server? Is the license valid for some time or forever?
How do you prevent multiple customers from using the same product key? Login — A more modern licensing system is to use Login of your use from the application. An example of this license is in recent Visual Studio versions, where you need to log in with your Microsoft Account. This is even less simple than the product key solution.
You can implement your own user database or allow to log in with an identity provider like Google , Facebook or Microsoft. A couple of ways to integrate with 3rd party identity providers is with Auth0 or IdentityServer. How do you prevent multiple customers from using the same account? This means you will give your customers a physical USB device that will act as a license.
This kind of license method is suited for enterprise applications that require extra security. Perhaps in the government or for security organizations. The advantage is that the dongle vendor will provide you with a complete software solution that you can integrate into your application.
0コメント