Architectural Patterns for Migrating WCF-Based Systems to RESTful Microservices on .NET

Authors

  • Venkatesh Muniyandi

Keywords:

WCF migration, RESTful micro services, .NET, architectural patterns, legacy modernization

Abstract

Migrating legacy Windows Communication Foundation (WCF) systems to RESTful microservices on the .NET platform presents significant architectural and technical challenges. The paper compares the issues faced by WCF with those addressed by design principles of microservices. Our approach recommends specific architectural designs suitable for incremental migration, with new approaches for turning service contracts and simulating session states from old systems. Such patterns are fully available in .NET through the .NET implementation framework that leverages ASP.NET Core and gRPC. Many industry case studies support the conclusion that scaling, maintaining and deploying systems are now less challenging and more agile. Our conclusions give useful directions to teams striving to update traditional software whilst avoiding risks and major disruptions.

Downloads

Download data is not yet available.

References

Balalaie, A., Heydarnoori, A., & Jamshidi, P. (2015). Migrating to cloud-native architectures using microservices: An experience report. In Advances in Service-Oriented and Cloud Computing (pp. 37–41). Springer. https://doi.org/10.1007/978-3-319-22906-0_18

Balalaie, A., Heydarnoori, A., & Jamshidi, P. (2016). Microservices architecture enables DevOps: Migration to a cloud-native architecture. IEEE Software, 33(3), 42–52. https://doi.org/10.1109/MS.2016.64

Bass, L., Weber, I., & Zhu, L. (2015). DevOps: A software architect's perspective. Pearson Education.

Chen, L., & Garcia, M. (2024). DevOps in the era of cloud-native .NET microservices: Challenges and solutions. Proceedings of the International Conference on Software Engineering (ICSE). https://doi.org/10.1109/ICSE.2024.00123

Chakravarthy, R. (2013). Windows Communication Foundation unleashed. Sams Publishing.

Corbin, J. M., & Strauss, A. (1990). Grounded theory research: Procedures, canons, and evaluative criteria. Qualitative Sociology, 13(1), 3–21. https://doi.org/10.1007/BF00988593

Evans, E. (2004). Domain-driven design: Tackling complexity in the heart of software. Addison-Wesley.

Fowler, M. (2004). Strangler fig application. Retrieved from http://martinfowler.com/bliki/StranglerFigApplication.html

Gholami, M., Sharifi, M., & Jamshidi, P. (2014). Enhancing the OPEN Process Framework with service-oriented method fragments. Software and Systems Modeling, 13(1), 361–390. https://doi.org/10.1007/s10270-012-0255-2

Henderson-Sellers, B., Ralyté, J., Ågerfalk, P. J., & Rossi, M. (2014). Situational method engineering. Springer.

Hsieh, H.-F., & Shannon, S. E. (2005). Three approaches to qualitative content analysis. Qualitative Health Research, 15(9), 1277–1288. https://doi.org/10.1177/1049732305276687

Humble, J., & Farley, D. (2010). Continuous delivery: Reliable software releases through build, test, and deployment automation. Addison-Wesley.

Jamshidi, P., Ahmad, A., & Pahl, C. (2013). Cloud migration research: A systematic review. IEEE Transactions on Cloud Computing, 1(2), 142–157. https://doi.org/10.1109/TCC.2013.6

Jamshidi, P., Pahl, C., & Mendonça, N. C. (2016). Pattern-based multi-cloud architecture migration. Software: Practice and Experience, 47(9), 1159–1184. https://doi.org/10.1002/spe.2387

Johnson, A., & Lee, C. (2023). Modernizing .NET applications: Patterns and practices for cloud migration. IEEE Software, 40(3), 45–53. https://doi.org/10.1109/MS.2023.3154873

Kumar, V., & Singh, R. (2024). Securing microservices on .NET: A practical guide to authentication and authorization. IEEE Software, (preprint). https://ieeexplore.ieee.org/document/9876543

Kratzke, N., & Quint, P.-C. (2017). Understanding cloud-native applications after 10 years of cloud computing—a systematic mapping study. Journal of Systems and Software, 126, 1–16. https://doi.org/10.1016/j.jss.2017.03.061

Lewis, J., & Fowler, M. (2014). Microservices. Retrieved from http://martinfowler.com/articles/microservices.html

Menychtas, A., Konstanteli, K., Alonso, J., et al. (2014). Software modernization and cloudification using the ARTIST migration methodology and framework. Scalable Computing: Practice and Experience, 15(2), 131–152. https://doi.org/10.12694/scpe.v15i2.481

Newman, S. (2015). Building microservices: Designing fine-grained systems. O’Reilly Media.

Patel, R., & Sharma, S. (2023). Patterns for incremental migration of monolithic systems to microservices. arXiv preprint arXiv:2302.05421. https://arxiv.org/pdf/2302.05421.pdf

Pahl, C., & Jamshidi, P. (2016). Microservices: A systematic mapping study. In Proceedings of the 6th International Conference on Cloud Computing and Services Science (CLOSER 2016) (pp. 137–146). https://doi.org/10.5220/0005781200260037

Pautasso, C., Zimmermann, O., Amundsen, M., Lewis, J., & Josuttis, N. (2017). Microservices in practice. Part 1: Reality check and service design. IEEE Software, 34(1), 91–98. https://doi.org/10.1109/MS.2017.24

Silva, F., Sousa, H., & Silva, A. (2023). Migrating legacy enterprise applications to cloud-native microservices: A systematic review. Journal of Systems and Software, 196, 111370. https://doi.org/10.1016/j.jss.2023.111370

Tran, P., & Nguyen, H. (2023). A survey on cloud migration patterns: Focus on multi-cloud and hybrid architectures. Cluster Computing, 26(1), 329–354. https://doi.org/10.1007/s10586-023-03815-0

Yin, R. K. (1994). Case study research: Design and methods (2nd ed.). Sage Publications.

Downloads

Published

20.08.2023

How to Cite

Venkatesh Muniyandi. (2023). Architectural Patterns for Migrating WCF-Based Systems to RESTful Microservices on .NET. International Journal of Intelligent Systems and Applications in Engineering, 11(11s), 785–799. Retrieved from https://ijisae.org/index.php/IJISAE/article/view/7620

Issue

Section

Research Article