-
Notifications
You must be signed in to change notification settings - Fork 31
Development
- Visual Basic.NET
- .NET Framework 4.8
-
Visual Studio 2022 is the preferred environment for development
- Download the Community edition for free. Install recommended extensions as needed for your purposes.
- MVC design adherence
- Modularization
- Separate worker and GUI threads
- Use DataBinding when possible
- Microsoft Visual Studio Installer Projects 2022 - Build MSI Installers. Not necessary unless you're creating a distribution/release.
- Multilingual Application Toolkit v.4.2.4 - Useful extension for previewing translations in WinNUT. Not required for contributing translations. See Localization.
- Stack Trace Explorer 2019/2022 - View stack traces in Visual Studio from the pasted contents of a stack trace.
- Focus - Save and load your open Visual Studio tabs. Useful for when you need to switch to another branch, and want to stash your progress in the current branch with notes on what you were doing at the time.
The Assembly version is automatically incremented, as defined in SharedAssemblyInfo.vb. The build number is automatically set as the number of days since January 1 2000, and the revision is the number of seconds since midnight divided by two. Major and minor versions are determined manually.
Manual releasing is done after desired branches have been merged into the current Dev branch.
- Make a build with the (Pre)Release configuration
a. Version information is no longer statically specified. Use
msbuild -p:"Configuration=[configuration string];Version=[major.minor version].*" .\WinNUT_V2.slnto build instead. - Confirm the version of the client assembly
- Edit the properties of the
WinNUT-Setupproject:- Update
Versionto the major.minor.build of the built client assembly - Let the
ProductandPackageCodefields be regenerated automatically when prompted - Go down the Detected Dependencies list in the Solution Explorer, and Exclude any the .NET assemblies that it decided to include
- Update
- Commit the Setup project changes (and any other uncommitted changes) in git
- Make sure the Setup project is built with the latest modifications
- Test an MSI upgrade with the built installer on the developer's system
- Uninstall WinNUT, then reinstall the previous version (downloading from GitHub if necessary)
- Tag and push the commit with the version in the format vmajor.minor.build.
- Compress the contents of the WinNUT Client output, giving the archive file a name including the word NoInstaller.
- Generate a new release on GitHub, generate release notes and add other details as necessary.
- Upload the archive and the generated Setup.msi file.
- After publishing the release, test an update from the previous version of WinNUT on the developer's machine to verify automatic update functionality.
WinNUT uses the Multilingual App Toolkit as a part of the Globalization and localization process for .NET applications. If you're interested in contributing translations, please see Translations.
- Globalizing Windows Forms applications
- Globalize and localize .NET applications
- Walkthrough: Localizing Windows Forms
Windows Forms is the toolkit from Microsoft for creating UI applications in Windows. There are many design patterns for Windows Forms, but the WinNUT project will try to standardize on an MVC pattern, and likely shift between passive views and supervising controllers as convenient. The goal will be to take advantage of the tools provided by Microsoft.
WinNUT's mascot has a distinct gradient-based design. Combined with the use of Windows Forms, WinNUT will standardize on the Windows XP-era icons included in the Visual Studio 2005 Icon pack.
- Microsoft Learn Windows Forms documentation
- Microsoft Learn Windows Forms Data Binding
- BlogSpot, aviadezra MVP-VM Design Model, Design Codes
- SoftwareEngineering How to properly structure a project in winform?
- Microsoft Learn Walkthrough: Debug Custom Windows Forms Controls at Design Time
- BlogSpot, aviadezra Twisting the MVC Triad - Model View Presenter (MVP) Design Pattern
- Microsoft Learn Win32 User Experience Design Guidelines
- Microsoft Learn .NET Framework development guide - Broad overview of different features of the .NET Framework