Your Privacy

This site uses cookies to enhance your browsing experience and deliver personalized content. By continuing to use this site, you consent to our use of cookies.
COOKIE POLICY

Classic Web App with a Modern Flare

Classic Web App with a Modern Flare
Back to insights

At UDig we pride ourselves on using some of the latest frameworks and industry trends when solving our clients’ problems. A typical solution for us generally includes either a AWS Lambda or Docker based microservices layer using either AngularJS or ReactJS front end solutions and all built with the latest DevOps techniques and tools, but what if a client needed a more classically simple solution?

The challenge: modernize, replace and support

This is a common challenge in consulting. Not all clients are ready to go cutting edge but they want a modern, proven solution that fits the bill. Recently we had two different clients that wanted to modernize and replace older antiquated platforms. They wanted the new systems to be better supported solutions while retaining the ability to easily leverage existing and /or find new talent for supporting / maintaining things long term. While the adoption of front end frameworks are gaining ground and finding their way into enterprise organizations we also understand it can be challenging to find readily available talent for some of those newer disciplines.

So what now? Well the good news is while we have new and exciting ways to architect applications the classics are also continually improving. So we set out to piece together a very modern feel on a more classic overall design. Having a diverse group of engineers in our Studio definitely helps with narrowing our selections but not without some solid subjective arguments for the various sides of the house: .Net vs. Java, server side templating vs. SPA based front ends, etc…so how did we decide? We looked at the specific needs of the client, features, documentation and popularity of the frameworks and talent on hand to deliver. We matched those requirements against the needs of the client and landed on the following stack:

  • Linux (OS),
  • Java 1.8,
  • MVC & Routing & Servicing
    • Spark Framework “Project 1”
    • Spring “Project 2”,
  • Templating
    • Freemarker “Project 1”
    • Thymeleaf “Project 2”
  • Data
    • MySql with jOOQ “Project 1”
    • MySQL with Spring Data “Project 2”
  • Log4j
  • And a few other honorable mentions you’re welcome to ask us about…

First things first.

First things first. The difference between Java and .Net are so negligible that for us it was the flexibility of OS that made the biggest difference. Choosing your java add-on frameworks can be much more dividing but we decided that Spring was best for one of the projects due to existing experience. Spark Framework was the real surprise here and we couldn’t be happier with the super simple Lambda based syntax it provides.

Combining these with templating engines like FreeMarker & Thymeleaf along with data access layers like jOOQ & Spring Data got us not only up and running in minimal time but uses extremely modern techniques to interact with both sides of the application. jOOQ was especially rewarding because it gives a natural SQL syntax with minimal overhead to our applications as it generates very normalized queries while Spring Data’s ability to auto wire data to classes is very simple and rewarding. Using an ORM in general wasn’t a concern in either scenario due to these applications having smaller concurrent user bases and being more transaction heavy. jOOQ alone shortened our development cycles by noticeable margins. Not having to jump between stored procs and services calls was a huge lift not to mention our combined logic was all in one place. FreeMarker and Thymeleaf on the other hand while really robust and capable did require a little finagling to truly simplify our templates and front end designs. If you’re familiar with .Net’s master page setup that is essentially what we were going for. We wanted to be able to define a Master Template and inject our page specific output within its content containers. We were able to achieve this with some thought and planning but it was a little unnatural at first.

Overall we couldn’t be happier with the direction of these projects. While they are still underway and undoubtedly there’s more to learn, I’m proud we could find a modern way to approach classic applications while simultaneously doing the right thing for our customer. It goes to show that not all problems are best solved with the latest and greatest but a little research can help you build a classic app with modern flare keeping both your engineers and clients happy.

About The Author

Andrew Duncan is a Director of Software Engineering in Richmond, VA. He is a driven technologist focused on modern technology stacks and best practices. Andrew believes nothing is more rewarding than making software needs a reality with a focus on flexible, scalable and supportable code.

Digging In

  • Digital Products

    Unlocking Business Potential: The Power of Custom Application Development

    Like any savvy business leader, you’re likely always on the lookout for tools to give your company a competitive edge. And in doing so, you’ve undoubtedly considered investing in custom application development. But the question is, how do you ensure that such a major investment in a custom web application development provides a strong return on […]

  • Digital Products

    Mastering Legacy Application Modernization: Strategies for Success

    The ironic truth of the business world is that change is the only constant. But this means that failing to keep pace with the competition and its technologies will only end with you falling behind. That’s where legacy application modernization enters the fold. When you modernize legacy applications, your team gains access to new features […]

  • Digital Products

    CTO Confessions Podcast

    In this episode of CTO Confessions, Rob Phillips, the Vice President of Software Engineering at UDig, digs into his journey from a passionate technologist in his youth to a seasoned leader in the tech industry. He shares valuable lessons on transitioning to senior leadership, the importance of understanding and articulating company problems, and the art of empowering teams for high performance.

  • Digital Products

    Navigating the Challenges of On Premise to Cloud Migration

    In today’s rapidly evolving technological landscape, the shift from on premise solutions to cloud-based infrastructure has become a pivotal transformation for organizations seeking to modernize their IT operations. This transition holds the promise of increased agility, cost savings, and enhanced scalability. However, it is not without its set of formidable challenges that organizations must navigate. […]

  • Digital Products

    The Power of Transferrable Skills in Tech Projects

    Every project has its own unique elements that require flexibility to be effective and achieve success. This often requires picking up new pieces of a tech stack, learning a new programming language, or a new project methodology. Fortunately, there are also many transferrable skills that carry over from one project to the next. In my […]

  • Digital Products

    The Four Pillars of Effective Digital Product Development

    In 2020 alone, approximately two billion consumers purchased at least one digital product. From software licenses to mobile apps and tech tools, consumers are becoming increasingly active in the digital product market, a trend that has naturally spurred brands across a wide range of industries to reevaluate their digital product design and development process workflows. […]