Six Years Later and All The DataSets Are Gone

Thursday, February 9, 2017 2:49:59 AM
So in 2010 as we worked on SpiraTeam v3.0 we started developing the new version using ASP.NET 4.0 and Visual Studio 2010. As we upgraded our environment, we realized that all of the old SpiraTeam code was using an obsolete technology for communicating with the database. Called ADO.NET Strongly Typed DataSets, it was a way for a web application using ASP.NET 1.1 to send data to/from the database using C# objects to hold the data and raw SQL queries to do the retrieves and writes to the database.

We decided that we needed to refactor SpiraTeam, which would ensure that the architecture would be strong for the future. This was important for us since it was critical that SpiraTeam's foundation would sustain the expected growth over the years ahead. Using our agile approach to architecture, we realized quickly that this effort would take many man-years to accomplish due to the size of the application and the need to rewrite the entire back-end! So we put in place the following refactoring manifesto instead:
  • All new functionality would use the new Microsoft Entity Framework EF4 instead of ADO.NET DataSets
  • We would refactor 1-2 modules to use EF per release of the system

Now we can fast forward to 2017, with the release of v5.2 in March we will have retired the last of the DataSet code. It has taken:

  • over 1,000,000 lines of code to be rewritten
  • approximately 4,500 cups of coffee
  • 1,800 searches on Stack Overflow
  • 1 copy of the great O'Reilly book on Entity Framework
  • 250 merge conflicts in Subversion with the dratted .EDMX file
  • 85 attempts to get round the composite key issue in Entity Framework
  • 120 new stored procedures

But at the end of it, we have a completely re-architected data access and business logic framework to SpiraTeam.

Of course, now we want to move to ASP.NET 4.6 and Entity Framework 6.0... but that's a story for another day!

1 Replies
Thursday, February 9, 2017 2:51:04 AM
Avatar
re: inflectra.adam on Thursday, February 9, 2017 2:49:59 AM
Let us know if you have any similar stories of mammoth multi-year refactoring efforts? Was the effort to pay down the technical debt worth it?
Statistics
  • Started: Thursday, February 9, 2017 2:49:59 AM
  • Last Reply: Friday, March 3, 2017 7:31:27 PM
  • Replies: 1
  • Views: 534