O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Modernizing .NET Applications

Book Description

As a .NET developer, you’re constantly asked to build relevant and resilient software that can run anywhere. That alone is a tall order. But you’re also asked to upgrade existing .NET software to unlock new value. This practical ebook shows .NET developers and architects how to improve the most impactful parts of your existing codebase and build a sustainable process for refining your entire .NET app portfolio.

Richard Seroter, senior director of product for Pivotal, explains how to responsibly modernize .NET apps so that you can consolidate your environments, add new functionality, upgrade and patch your dependencies, and automate parts of the delivery cycle.

  • Understand the modern demands of a .NET software developer
  • Learn how to choose between .NET Core and the .NET Framework
  • Understand why cloud native development has become a go-to option for companies undergoing modernization
  • Discover what you need to unlearn in light of patterns and anti-patterns in new development paradigms
  • Explore the components you may want to consider to achieve agility, scalability, and velocity
  • Determine where you want to run different .NET application types
  • Learn proven modernization strategies for decomposing monoliths, upgrading your architecture, and more

Table of Contents

  1. Preface: The .NET Renaissance
    1. Acknowledgments
  2. 1. Why App Modernization Matters
    1. What Is Modernization?
    2. Why Modernize?
    3. What We Cover in This Book
  3. 2. What You Have Running Right Now
    1. You Have Many Different .NET Project Types
      1. What That Means
      2. Why You Want to Change
    2. You Have Lots of Windows-Specific Hooks in Your .NET Software
      1. What That Means
      2. Why You Want to Change
    3. You Have Stale Environments That Aren’t Regularly Updated
      1. What That Means
      2. Why You Want to Change
    4. You Have Monolithic Architectures and Complex Deployments
      1. What That Means
      2. Why You Want to Change
    5. You Have Apps Without Deployment Pipelines
      1. What That Means
      2. Why You Want to Change
    6. You Have Apps That Aren’t Ready for Higher-Order Cloud Runtimes
      1. What That Means
      2. Why You Want to Change
    7. Summary
  4. 3. The .NET Software You’re Asked to Create
    1. Behind-the-Firewall Enterprise Apps
    2. Real-Time Processing Systems
    3. Public-Facing Web Applications
    4. Mobile-Friendly Solutions
    5. APIs for Internal Apps and Partners
    6. Summary
  5. 4. What Does Cloud Native Look Like?
    1. Defining Cloud Native
    2. Why Cloud-Native Matters
      1. Customers Expect It
    3. Characteristics of Cloud-Native Apps
      1. They Meet the 15-factor Criteria
    4. Thinking Beyond “Apps” for Cloud-Native Software
    5. Measuring Your Progress Toward Becoming Cloud Native
    6. Summary
  6. 5. Choosing Between .NET Framework and .NET Core
    1. A Bit of History Regarding the .NET Framework
    2. The Introduction of .NET Core
    3. Deciding Which to Use When Modernizing .NET Apps
    4. Summary
  7. 6. The New .NET Antipatterns
    1. .NET Application Architecture Antipatterns
      1. In-Process State
    2. Configuration and Instrumentation Antipatterns
      1. Using web.config for Environment-Specific Values
    3. Application Dependencies and Deployment Anti-Patterns
      1. Global Assembly Cache Dependencies
    4. Summary
  8. 7. New Components for Your Modernized .NET Applications
    1. Open Source Data and Messaging Software
    2. Cloud-Based Data and Messaging Services
    3. Modern .NET Packages
      1. xUnit
      2. Steeltoe
    4. Continuous Integration and Continuous Delivery Tools
    5. Summary
  9. 8. Where to Run Your Modern .NET Applications
    1. Choose Your Infrastructure Location
    2. Choose Your Infrastructure Abstraction
      1. Hardware Abstraction
      2. Infrastructure as a Service Abstraction
      3. Container as a Service Abstraction
      4. Platform as a Service Abstraction
      5. Function as a Service Abstraction
    3. Summary
  10. 9. Applying Proven Modernization Recipes
    1. Use Event Storming to Decompose Your Monolith
    2. Externalize Your Configuration
    3. Introduce a Remote Session Store
    4. Move to Token-Based Security Schemes
    5. Put .NET Core Apps on Pipelines
    6. Summary
  11. 10. Your Call to Action
    1. Step 1: Assess Your Portfolio
    2. Step 2: Decide on a Modernization Approach
    3. Step 3: Modernize Your Initial Set of Apps
    4. Step 4: Record Your Patterns and Spread the News
    5. A Final Note