.
Mastering the CLI, Entra ID, and Modern Testing
Starting a project correctly is about more than just code; it's about the environment. In this guide, we’ll build a professional-grade solution using Microsoft Entra ID for security, a separate Class Library for logic, and the modern Microsoft Testing Framework for high-performance test execution—all without leaving the command line.
Step 1: The Foundations (Prerequisites)
Before we touch the command line, ensure your toolkit is up to date. You'll need these three pillars installed:
.NET 10 SDK
The core engine. Download the latest SDK to access new performance features and the dotnet CLI tools.
VS Code
Install the C# Dev Kit extension. It provides the "Solution Explorer" feel directly inside VS Code.
Git
Required for version control and for many .NET templates to initialize correctly during project creation.
Step 2: Entra ID App Registration
We need to register our app in Azure to get the Tenant ID and Client ID needed for authentication.
1. Create Registration
- Go to the Microsoft Entra admin center.
- Navigate to Applications > App registrations.
- Click New registration. Name it "MyEnterpriseApp".
- Redirect URI: Select Web and enter
https://localhost:7123/signin-oidc.
2. Define App Roles
- Inside your new app, go to App roles.
- Click Create app role.
- Display Name:
Admin, Value:Admin. - Allowed member types: Users/Groups.
- Repeat for a
Userrole.
Checkpoint
Copy your Application (client) ID and Directory (tenant) ID from the Overview page. You'll need these for the CLI commands!
Step 3: Building the Solution via CLI
The Terminal Commands
Run these commands in order. Replace the placeholders with your Azure IDs from Step 2.
mkdir MyEnterpriseSolution && cd MyEnterpriseSolution
# Create Solution File
dotnet new sln
# Create MVC Web App with Entra Auth
dotnet new mvc -o MyWebApp --auth SingleOrg \
--client-id "YOUR_CLIENT_ID" \
--tenant-id "YOUR_TENANT_ID"
# Create Class Library and Test Project
dotnet new classlib -o MyBusinessLogic
dotnet new mstest -o MyTests
# Stitch it together
dotnet sln add MyWebApp MyBusinessLogic MyTests
dotnet add MyWebApp reference MyBusinessLogic
dotnet add MyTests reference MyBusinessLogic
Why this structure?
By using a Solution (.sln), you manage multiple projects as one unit. The Class Library keeps your core code clean, and MSTest ensures it stays working.
Enable EXE Testing:
In .NET 10, your test project can be an exe. Ensure MyTests.csproj contains:
<OutputType>Exe</OutputType>
Step 4: Using the Roles
Now that Entra ID knows about the "Admin" role, apply it to your controllers for instant security.
public class AdminController : Controller
{
public IActionResult Index() => View();
}
Don't forget to assign yourself the role in the Enterprise Applications section of the Azure Portal!
Step 5: Control Center
Run and test your new .NET 10 solution from the terminal.
| Goal | Command |
|---|---|
| Run the Web App | dotnet run --project MyWebApp |
|
Run Tests (Modern)
Executes tests directly as an EXE |
dotnet run --project MyTests
|
| Build Everything | dotnet build |
Community Discussion (0)
Leave a Comment
No approved comments yet. Be the first to start the conversation!