Book Image

ASP.NET Core 5 and React - Second Edition

By : Carl Rippon
Book Image

ASP.NET Core 5 and React - Second Edition

By: Carl Rippon

Overview of this book

Microsoft’s .NET framework is a robust server-side framework, now even more powerful thanks to the recent unification of the Microsoft ecosystem with the .NET 5 framework. This updated second edition addresses these changes in the .NET framework and the latest release of React. The book starts by taking you through React and TypeScript components for building an intuitive single-page application and then shows you how to design scalable REST APIs that can integrate with a React-based frontend. Next, you’ll get to grips with the latest features, popular patterns, and tools available in the React ecosystem, including function-based components, React Router, and Redux. As you progress through the chapters, you'll learn how to use React with TypeScript to make the frontend robust and maintainable and cover key ASP.NET 5 features such as API controllers, attribute routing, and model binding to build a sturdy backend. In addition to this, you’ll explore API security with ASP.NET 5 identity and authorization policies and write reliable unit tests using both .NET and React, before deploying your app on Azure. By the end of this book, you’ll have gained the knowledge you need to enhance your C# and JavaScript skills and build full-stack, production-ready applications with ASP.NET 5 and React.
Table of Contents (21 chapters)
1
Section 1: Getting Started
4
Section 2: Building a Frontend with React and TypeScript
10
Section 3: Building an ASP.NET Backend
16
Section 4: Moving into Production

Answers

  1. The Fact attribute is missing from the test method.
  2. We would use the Assert.Contains method in the Assert class.
  3. The test filename needs to end with .test.tsx. So, if we rename the file List.test.tsx, then the test will get picked up.
  4. We can use the following code to check an object isn't null:
    expect(result).not.toBeNull();
  5. We can use the toEqual Jest matcher function to compare objects:
    expect(person).toEqual({ 
      id: 1, 
      firstName: "Tom", 
      surname: "Smith" 
    });
  6. We can use the following Cypress command to check the page heading:
    cy.contains('Sign In');
  7. We can use the following Cypress command to check that Loading… only appears while data is being fetched:
    cy.contains('Loading...');
    cy.contains('Loading...').should('not.exist');

    The first command will check that the page renders Loading... on the initial...