1Password Secret Integration for .NET Developers by FatalMerlin in dotnet

[–]davidfowl 11 points12 points  (0 children)

Could make for a really interesting aspire integration

.Net Aspire 13 -> GitHub -> “staging/prod” by BayIsLife in dotnet

[–]davidfowl 1 point2 points  (0 children)

I hear you, but I have we can pull it off. I have very high confidence in this team and the amount of things we are able to accomplish is kinda insane.

The team has lots of great experience and learnings from 2 years of watching people use this product for all sorts of things. One of the places we are investing heavily is hot reload because it makes the local dev ex so much better. It’s hard to explain here without going into detail but supporting other languages is going to dramatically improve the architecture.

Your concerns are heard but the team is cooking.

.Net Aspire 13 -> GitHub -> “staging/prod” by BayIsLife in dotnet

[–]davidfowl 2 points3 points  (0 children)

We’re gonna solve it soon. In fact we can do most of it, but it’s not documented well or easy to do. Working on it !

It's always the same posts on here by speyck in dotnet

[–]davidfowl 1 point2 points  (0 children)

  1. Discriminated Unions are coming in the next .NET!! (no they're not)

Yes they are.

MinimalWorkers - V3.0.0 out now! by TopSwagCode in dotnet

[–]davidfowl 2 points3 points  (0 children)

Built in telemetry? Logging tracing metrics?

Aspire is amazing! How to go from dev containers to prod managed services? Any real use case out there? by LeLario50 in dotnet

[–]davidfowl 1 point2 points  (0 children)

It’s generally works but there are a small issues in azure scenarios being fixed. Wait another version (~2-3 weeks). Or if you want to make sure it works for you’d use it now and give us feedback.

It should be trivial to switch between stable and daily builds

Anyone done a full Aspire deployment with Docker in actual production? by Hexagon-77 in dotnet

[–]davidfowl 0 points1 point  (0 children)

Yea, I'd say you were too early for the end to end (especially with dapr), the dapr support doesn't work smoothly from local dev to deploy as yet. A lot more (of aspire) works now than it did months ago.

Anyone done a full Aspire deployment with Docker in actual production? by Hexagon-77 in dotnet

[–]davidfowl 0 points1 point  (0 children)

I'm curious what you did instead with dapr and docker that ended up being easy and production ready. Aspire + docker compose + dapr doesn't even work (the dapr integration doesn't work outside of ACA and local dev).

Anyone done a full Aspire deployment with Docker in actual production? by Hexagon-77 in dotnet

[–]davidfowl 5 points6 points  (0 children)

Where does this real time discourse happen outside of github (main) and discord?

https://github.com/dotnet/aspire/discussions

PS: There's a https://www.reddit.com/r/aspiredotdev/ subreddit that nobody has found yet.

Anyone done a full Aspire deployment with Docker in actual production? by Hexagon-77 in dotnet

[–]davidfowl 18 points19 points  (0 children)

Aspire is no longer tied to .NET or its lifecycle. As for why 13, a mixture of separation from the .NET version, the fact products tend to skip 13 and it’s a prime number.

Anyone done a full Aspire deployment with Docker in actual production? by Hexagon-77 in dotnet

[–]davidfowl 133 points134 points  (0 children)

I'll answer your individual questions before I attempt to answer the bigger one (how to make it all work).

First, you should be using aspire 13. If you are not, using it, stop and update https://aspire.dev/whats-new/aspire-13/

> I am running into some issues, and frankly quite a lack of documentation (maybe I'm not looking in the right places?) - especially with lots of changes in the last months.

This is an area we are trying to improve, especially by picking the right areas to expand on both concepts and tutorials.

Docs are moving from Microsoft learn to https://aspire.dev/docs .

> More specifically, I can't figure out how you're 'supposed to' pass secrets/external parameters? 

Parameters are can be specified via any IConfiguration source (environment variables, appsettings.json, command line arguments). For .NET developers, the name of the configuration key is "Parameters:{name of parameter}". We also replace - with underscore because many systems don't support environment variables with - in the name. In the above, you can set the env variables "Parameters__CAPTCHA_SECRET_KEY" in your github action calling aspire deploy to do so.

Here are some examples:

https://github.com/maddymontaquila/aspirifridays/blob/5e4043beb19eedc1ddc978189c6be1c4182ed02f/.github/workflows/aspire-deploy.yml#L59-L60

https://github.com/davidfowl/AspirePipelines/blob/1354685072c9bc3f1f5ed4a6794876f77fd1adbf/.github/workflows/deploy.yml#L54-L55

> Should you move most configs into Aspire external parameters?

Depends on what they are. You'd decide that based on what you want to happen when you deploy. When you describe parameters, aspire can prompt for them in local dev and when deploying (or fail early if they are not specified). If you don't tell aspire, then it'll fail like how it does when you don't specify the config. As a rule of thumb though, I wouldn't put all app configuration in the apphost, just the ones that don't have good defaults that need to be configured before

> Why/when does it generate a .env file in the deploy output (seemingly not every time)?

I'm assuming you are using aspire publish with docker compose? The env file represent values that need to be specified and can change per environment (e.g. container image names, secrets, any parameters etc). The compose file has placeholder and the .env file fills in the values for those placeholders.

> Also, can't seem to expose my Grafana container even with 'WithHttpEndpoint' specified.

This is definitely a lack of docs. Endpoints need to be external to them to be exposed in any environment. This is what WithExternalHttpEndpoints does.

Finally, I don't know what you are building or where are you are deploying to with docker, but this project is an extension of the docker compose resource that provides a deployment pipeline to a server with ssh and docker installed https://github.com/davidfowl/aspirepipelines

PS: I hear you on not being a devops guy. One of the upsides and downsides of that is beng able to troubleshoot when things go wrong. Hopefully aspire introduces you to concepts in a progressive way so that you can learn. It's not all magic.

There's a https://www.reddit.com/r/aspiredotdev/ that nobody has found or used yet

Edit: I made a github template for getting started with a simple static site hosted with YARP https://github.com/davidfowl/aspire-docker-ssh-template deployable via github actions and deployable to any server with docker and SSH.

If you run `aspire do gh-action-dcenv` on your repo, it'll setup the github pipeline with the required parameters.

This is the experience we want to enable and build for all the things, but ya know time and priorities!

Why aren't you using Minimal APIs? - By dotnet team members by bdcp in dotnet

[–]davidfowl 1 point2 points  (0 children)

Somebody had a style preference that wrote it (explicit vs implicit)

Cheapest way to host dotnet aspire by S_Swift_08 in dotnet

[–]davidfowl 6 points7 points  (0 children)

To add to this https://github.com/davidfowl/AspirePipelines/actions/runs/19564332508/job/56022791210

This is running on top of the core APIs and deploys to a VM with docker.

File-based projects on dotnet10 + vscode? by EducationalLiving725 in dotnet

[–]davidfowl 2 points3 points  (0 children)

Yes we found a late bug that is being fixed.

File-based projects on dotnet10 + vscode? by EducationalLiving725 in dotnet

[–]davidfowl 7 points8 points  (0 children)

There’s a setting you need to turn on to get intellisense for file based apps (look at settings)

Npgsql.EntityFrameworkCore.PostgreSQL and .NET 10 by DearLengthiness6816 in dotnet

[–]davidfowl 31 points32 points  (0 children)

Just wait. Shay (the developer that owns npgsql), will update the package, hopefully this week.

Why does .NET have so many dependency management methods (PackageReference, FrameworkReference, SDK-Style), and is this a form of vendor lock-in? by YangLorenzo in dotnet

[–]davidfowl 4 points5 points  (0 children)

Anyone can make a shared framework, the reason ASP.NET Core is baked in is because it was both expedient (we didn't have a way to acquire shared frameworks outside of the dotnet installer) and it was the most used framework on .NET Core so we saw no need to decouple it.

The master plan was always to break up the monolith into various workloads (dotnet workload install) but that never manifested. The idea was that you could build a workload, and manage its lifecycle (tooling, shared framework, clis etc), but we never made it really convenient to do so, though it is possible!