A nationwide laboratory testing organization needed to update its .net Lab software project. They enlisted XTIVIA’s support to modernize using a contemporary language and framework. The upgrade included dynamic text fields capable of reading from scanned lab test documents, various user interface (UI) changes, and updates. These improvements encompassed field validation and enhancements allowing navigation through form fields without a mouse. Visual cues in the UI were designed to prompt users to input additional information based on data extracted from scanned lab reports. Additionally, new functionalities for scanning lab test documentation were introduced alongside necessary database updates to support these enhancements effectively.
The organization followed established practices to maintain efficiency and security. They held daily standup meetings and live demo sessions led by developers to facilitate collaboration among senior, mid-level, and junior team members. Additionally, they implemented strict database and source control safety protocols. These protocols required specific usernames, passwords, and permissions to access the database and source code.
The Lab project lasted about a year. Throughout the year, they wanted updates to their lab software. This included updates such as keeping the project up to date by using the MVC framework with c#/asp.net instead of the original Perl code and changes to the UI that are more user-friendly but add new functionality to the existing lab software. These UI changes include dynamic text fields that preload text from a scanned document, field validation on these text fields, new scanning functionality to load the lab data from a scanned document into their ‘Maxi’ software form, and subsequent database changes.
Best Practices in .NET Software Development
During the project’s duration, the nationwide laboratory had already established best practices that they follow. These included daily standup meetings, which lasted from 15 minutes to a half hour. These standups consisted of each developer telling the team what they worked on the previous day, what they will be working on the current day, and any blockers the developer may be experiencing. During this time, more senior developers would give guidance or set up a meeting where they would help whoever was having trouble and provide a path forward.
Leveraging Demo Standups
Throughout this project, there were also “demo” type standup meetings. These differed from the typical standups in that they were typically more extended than the normal standups, usually about 30 minutes to 1 hour in length. In the “demo” standups, each developer would showcase the project or part of the overall project that they’ve been working on, providing insights into what work was completed, the functionality of the portion of code that they changed/implemented, and a demonstration of the code they put in place. This also helped team members understand the different areas of the software system that other developers may not be familiar with or may not always work with.
Showcasing Development Progress
Afterward, each developer would lay out a plan for their next steps on completing their portion of the project or, if completed, plan out what they would work on or who they could assist in the coming week. The live demo sessions also helped the client provide valuable feedback throughout the project and allowed them to request changes on the spot if they saw something they wanted changed.
Scheduling and Frequency of Demos
The “demo” standups do not occur as frequently as expected. These special standups usually occurred once every one to two weeks, sometimes three, to give each team member time to complete their work and/or move past any blockers they may have experienced throughout the sprint.
Best Practices in Code Management
Lastly, the most essential practice observed was that code was checked in often. This means any changes made to the project source code were reviewed, and the changes were submitted frequently. This practice keeps the code base up to date. Having an up-to-date code base helps when other developers are constantly pulling the code down to be able to have the updates in their local version of the project. This keeps everyone’s work up to date, as developers won’t have to wait on any changes that could impact their work, keeping the project moving forward steadily.
Key Lessons from Integrating .NET with Lab Software
XTIVIA learned that the overall project relied heavily on integrating a document scanner. This meant using a scanner library with the .net framework. There are a couple out there, but WinForms and Twain were the two significant libraries that were attempted to be used.
Ultimately, it was decided that WinForms would be the best choice because of its no-cost option use. That isn’t to say Twain costs money to use, but for its specific use in this application, XTIVIA would have needed to pay for a separate third-party software to use Twain.
Exploring WinForms: A Viable Choice for .NET Lab Software
WinForms proved to be a good option, given its familiarity among many developers. This makes maintaining applications that use WinForms easier. It is also straightforward to integrate with other .net libraries and lightweight, meaning that WinForms’s performance is good, especially with more uncomplicated documents, such as the lab results documents to be scanned in this use case.
However, WinForms has a couple of drawbacks. This library could offer better scalability and is suitable for more straightforward applications, like their internal proprietary laboratory application. Still, if this software is to be scaled larger or handle more complex scanning in the future, WinForms may need more capacity to handle this. This was brought to the team’s attention, but it was ultimately decided that WinForms would be okay since its functionality in the internal proprietary laboratory application is to scan lab result documents.
WinForms is also somewhat outdated compared to other scanning libraries such as Twain. WinForms does not have the rich UI elements that Twain provides, nor does it allow for the extensive scanning customization Twain has. For this application, though, the scanned documents were simple. The purpose of the scanning was to retrieve the data from the scanned document, so extensive UI scanning elements were unnecessary.
The major drawback of WinForms is that it is a Windows-specific library and will only work with Windows applications. Mac and Linux users cannot use an application with this library. However, given that the internal proprietary laboratory application was being built solely for use on a Windows desktop in their lab, this drawback didn’t apply to the library’s application. It will not affect the software’s functionality.
Enhancing Accessibility and Efficiency with Hotkey Integration in .NET Lab Software
Another lesson learned during this project was the implementation of “hot” keys. Since one of the lab application’s requirements was to avoid using a mouse, functionality had to be programmed so that specific keys on the keyboard would perform some function. XTIVIA had the typical “Tab” and “Enter” functionality implemented to switch between text fields and submit the form data. Still, we also used other keys to refresh or pull new data from the database, save data, and zoom in on the scanned image.
The hotkey functionality was implemented using a combination of JavaScript and Ajax. Ajax called an API to pull the scanned image and document data from the database and save any data input in the text form fields. Javascript created the shortcut keys (hotkeys).
This essential shortcut implementation started by defining the custom vital functions, which contained the necessary code to trigger specific keys’ functionality when pressed. To do this, a listener event must be implemented, which detects the pressed keys. Once the key is pressed and the listener is triggered, the custom key function will be called from this crucial press, and the hot key’s specific functionality will be triggered.
Implementing the custom essential functions was tricky but a good learning experience. Since most applications today use a mouse, it was beneficial to implement custom essential functions since this isn’t used often.
Navigating Challenges with DevExpress in .NET Lab Software Development
One of the most challenging aspects of the internal proprietary laboratory application project was using a library called DevExpress. This library offers a variety of form field validations that accompany these fields. This is a paid library, and they had already paid for a license for this project.
This library was somewhat challenging to work with because of its unfamiliarity. Many libraries offer a variety of form fields, but DevExpress was not the most user- (developer) friendly library with which to work. A decent amount of time was spent reading the DevExpress documentation for using the fields, saving the data from them, populating the fields from data pulled from the database, and formatting the form fields.
Conclusion
In conclusion, this project was an excellent opportunity to learn how to integrate a scanning library and use custom “hot” key functionality with the application itself. Although using the DevExpress library proved challenging initially, working with it daily made it easier as time went on.
Once the challenges of integrating the scanning library, using the DevExpress library, and implementing the custom shortcut keys, the project progressed steadily but quickly. The client was happy with the results of the work performed on updating and adding functionality to the internal proprietary laboratory application project.
Overall, this nationwide laboratory testing organization was a great experience and an even better client to work with. They had a very structured team, good communication, implemented proven industry standards, and knowledgeable developers. They showed professionalism that should be common across all projects and clients.
Want to learn more about this seamless integration solution for .NET lab software updates? Let XTIVIA guide you through your implementation with our certified Microsoft experts. Also, remember to ask about our Admin On-Demand service.
Our downloadable version of this case study is available here.