• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Crashes
#16
I have no control over how the installation works unfortunately - it's a part of Microsoft's framework and they don't give developers any way of changing the behavior. I wish I could warn users while uninstalling that it will delete all of their application data, but I can't do that either.

Rein - if you can't update to version 2.6.5 through the Microsoft Store, then the only option is to switch you over to the FastSpring version which will probably take about 10-15 minutes. Send me an email at mike@zubersoft.com and I can help with that.

Mike
Reply
#17
If you can't do it in the installation process, could you not do it in the first startup of a new version ?
If it works, it will backup the database file before using/modifying it
If it crashes immediately, the database and files should still be intact.

Geoff
Samsung Galaxy Tab A6
Reply
#18
1. This is unacceptable.

2. I have been professionally developing software for the past 45 years. For the past 18 years, I have been developing and supporting a suite of Windows applications employed by more than 10,000 users around the world.  Never have I released a new version of any application that immediately crashed, and forced the user to either upgrade the application or upgrade Windows.

3. Beta testing is not the answer. TEST YOUR APPLICATION ON EACH ACTIVE VERSION OF WINDOWS BEFORE YOU RELEASE IT!!!

4. Instructions for controlling Windows 10 updates are here:

https://www.pcworld.com/article/3085136/...dates.html
Reply
#19
1. I definitely screwed up and I take full responsibility for the mistakes that were made. As I have stated, I will be making changes to ensure changes are tested across multiple versions of Windows 10. I may also decide to limit the number of versions of Windows 10 I support (perhaps the last 3 updates or so) so that I don't have to do a full regression test across 5+ updates on 5 different VMs. I'm just one developer currently working multiple jobs so I don't have the bandwidth to test that many versions without it having a very serious impact on the amount of time it takes to deliver any update. 

2. I was not forcing any user to to upgrade Windows - I was just suggesting that as a workaround until I was able to get the update approved through Microsoft.  There is no option to downgrade software through the Microsoft Store, so I'm not sure how a crash could be dealt with except an update of the application. I'm not sure how much experience you have with UWP applications and the Microsoft store, but the approval process seriously hampers my ability to respond to issues quickly. That's no excuse for releasing software with serious bugs, but I can't prevent all bugs from occurring as the application has too many options and variables with user provided libraries to cover everything. In this case, yes, I should have tested the application on multiple versions of Windows 10, but I wasn't even aware that I was accessing functionality that wasn't supported across all versions of Windows. I was just calling a simple method in Visual Studio, and there is no information in any of Microsoft's APIs in Visual Studio indicating there is a problem. Calling IsLoaded on a UI component seems like an innocent thing to do that should be included in the base SDK. I now know that I have to look up pretty much any API call I use into any component in order to verify it's safe. I have dealt with fragmentation a great deal with Android, but at least there, Google warns you about incompatibilites when you build your code, as it's not always obvious what functionality is supported for each SDK level.

3. I was just suggesting that it could be beneficial to have willing users test out builds before the official release. As I mentioned earlier, there are a huge number of settings, and with user generated libraries, it's not plausible for me to test every possible combination. This is not a replacement for me testing the software - it's just something that could be done in addition to that to help reduce the rate of errors. Beta testing is built into Google Play, the Microsoft Store, the Amazon App Store, HockeyApp, etc. If it was not useful as a tool, I don't think so much work would be done to include support for it.

4. I will plan on setting up VMs for specific versions of Windows 10 and just run them with no internet. I'll also set up the updates to be postponed just in case.

I will do everything I can in the future to prevent these kinds of issues when possible. The issue some users are experiencing with the app not loading now (separate from the issue with incompatible API call) is something that I'm not sure I could ever prevent. I have tested on multiple versions of Windows on 6 devices and none of them demonstrate this issue. Users that have been experiencing it have said it suddenly goes away. Others update Windows 10 and the issue vanishes. I have one user who is experiencing this issue who is testing builds for me, but so far no answers have been found. It's issues like these that, if I can't reproduce it, I can't prevent it from occurring. I can only respond proactively to try and address the issue for the small number of users who are encountering it.

I appreciate your feedback. 

Mike
Reply
#20
Zubersoft Wrote:In this case, yes, I should have tested the application on multiple versions of Windows 10, but I wasn't even aware that I was accessing functionality that wasn't supported across all versions of Windows. I was just calling a simple method in Visual Studio, and there is no information in any of Microsoft's APIs in Visual Studio indicating there is a problem. Calling IsLoaded on a UI component seems like an innocent thing to do that should be included in the base SDK. 

Trust nothing from Microsoft. At minimum, "smoke test" a new version with each supported version of Windows before making a release; this would have caught the recent failure. I make it a practice to step through all changed code in the debugger to ensure that it behaves as expected.

Zubersoft Wrote:3. I was just suggesting that it could be beneficial to have willing users test out builds before the official release. As I mentioned earlier, there are a huge number of settings, and with user generated libraries, it's not plausible for me to test every possible combination. 

Beta testing can indeed be useful, but there's  natural tendency for it to reduce the developer's attention to testing. Unless you beta test with thousands of users -- which is not practical -- there's no reason to believe that your beta testers will check significantly more combinations than you would.

Zubersoft Wrote:4. I will plan on setting up VMs for specific versions of Windows 10 and just run them with no internet. I'll also set up the updates to be postponed just in case.

Maintaining control of your test environments is essential.

Zubersoft Wrote:I will do everything I can in the future to prevent these kinds of issues when possible. The issue some users are experiencing with the app not loading now (separate from the issue with incompatible API call) is something that I'm not sure I could ever prevent. I have tested on multiple versions of Windows on 6 devices and none of them demonstrate this issue. Users that have been experiencing it have said it suddenly goes away. Others update Windows 10 and the issue vanishes. I have one user who is experiencing this issue who is testing builds for me, but so far no answers have been found. It's issues like these that, if I can't reproduce it, I can't prevent it from occurring. I can only respond proactively to try and address the issue for the small number of users who are encountering it.

A practice that has helped me enormously is to build error logging and progress logging into each application. When any error or inconsistency is detected, a date-and-time-stamped entry is written to the error log. There's also a "log debugging info" option that the user can enable; when this option is enabled, every non-trivial or "risky" function in the application writes an entry to the errorlog.txt file on entry (noting its parameters) and on exit (noting its results). Complex functions write entries documenting intermediate results. When a user reports behavior that you cannot replicate, they may have an errorlog they can send you; if not, you can ask them to enable "log debugging info", repeat the failing scenario, and then send you the resulting error log. Depending upon the size of your application, this may seem an overwhelming task; start by introducing logging to the top ten most complex or "risky" functions, and then address the rest gradually over time. 

     Dave
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Users browsing this thread:
1 Guest(s)


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.