# C# (.NET) Entry Point (DO NOT MODIFY)

The base Azure Functions template includes a properly configured `Program.cs` that should NOT be modified or replaced by recipes.

> ⛔ **CRITICAL**: Do NOT replace or modify `Program.cs` from the base template.

## Base Template Program.cs

The official `functions-quickstart-dotnet-azd` template uses:

```csharp
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()  // ASP.NET Core integration
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

host.Run();
```

## Why This Matters

| Feature | ConfigureFunctionsWebApplication | ConfigureFunctionsWorkerDefaults |
|---------|----------------------------------|----------------------------------|
| ASP.NET Core integration | ✅ Yes | ❌ No |
| IActionResult return types | ✅ Yes | ❌ No |
| [FromBody] model binding | ✅ Yes | ❌ No |
| App Insights integration | ✅ Built-in | ❌ Manual setup |
| Modern HTTP handling | ✅ Yes | ⚠️ Limited |

## What Recipes Should Provide

Recipes only need to add:
1. **Trigger function files** (`.cs` files with `[Function]` attributes)
2. **Package references** (`.csproj` additions for extensions)
3. **App settings** (connection strings, configuration)

All triggers use attribute-based binding — no Program.cs modifications needed:
- `[HttpTrigger]`, `[TimerTrigger]`, `[CosmosDBTrigger]`
- `[ServiceBusTrigger]`, `[EventHubTrigger]`, `[BlobTrigger]`
- `[DurableClient]`, `[SqlTrigger]`

## Common Mistake

❌ **WRONG** — Recipe overwrites Program.cs with outdated version:
```csharp
var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()  // OLD PATTERN
    .Build();
```

✅ **CORRECT** — Recipe leaves Program.cs untouched, only adds function files.
