Skąd ASP.NET Core "wie", że musi użyć model binding technique, która używa [FromBody]? To zachowanie domyślne ASP.NET Core?

[HttpPost]
public async Task<ActionResult<TodoItem>> PostTodoItem(TodoItem todoItem)
{
_context.TodoItems.Add(todoItem);
await _context.SaveChangesAsync();

// return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
}

#csharp #aspnetcore #dotnet #naukaprogramowania #pytanie
@_gabriel: Domyślne zachowanie.
Jeśli parametrem metody jest typ prosty (int/double/string itd.) to domyślnie jego wartość będzie poszukiwana w url requestu, jeśli jest to obiekt złożony to dane będą poszukiwane w body requestu.

Można również ten mechanizm ominąć, tj zrobić:

(...) PostTodoItem([FromBody] int someValue)
aby wczytać typ prosty z body

lub

(...) PostTodoItem([FromQuery] TodoItem todoItem)
aby wczytać tym złożony z adresu url
  • Odpowiedz
Czy dla was też dokumentacja Microsoftu brzmiała tak abstrakcyjnie?


@_gabriel: Dokumentacja MS jest złota, pod warunkiem że czytasz ją w wersji angielskiej xD Te polskie tłumaczenia maszynowe to jakieś nieporozumienie.
  • Odpowiedz
  • 0
@_gabriel: w sumie długo tak miałem i wolałem już na stacku szukać odpowiedzi a później jakoś zaskoczylo i jest to pierwszy wybór. Dodatkowo mają trochę fajnych artykułów gdzie poza czysta dokumentacja biblioteki opisują np good practice albo naming guideline itp
  • Odpowiedz
  • 0
@_gabriel:
To zależy od wersji .NET oraz od wersji OpenAPI:

Build-time OpenAPI document generation with Swashbuckle isn't supported in .NET 8 and later. For a supported build-time alternative, see ASP.NET Core web API documentation with Swagger / OpenAPI. Run-time document generation is still supported in .NET 8.


W moim przypadku plik jest run-time generated.
  • Odpowiedz
@Dworki: Niestety ale pewne podejścia narzucaja pewne ograniczneia z kórymi się trzeba pogodzić. Takie hotfixy powinny być rzadkie wiec jeśli nawet jest spory narzut pracy związany z dodaniem ich potem do deva to ja bym to zakaceptował.
  • Odpowiedz
@_gabriel: przecież to elementarz jest, a tu masz wszystko w jednym artykule wikipedii: https://pl.wikipedia.org/wiki/Common_Language_Runtime

W skrócie: .NET to jest maszyna wirtualna (coś jak Java). Programy kompilowane są najpierw do kodu pośredniego (tzw. bajtkodu), który działa na tej maszynie. Ten kod to jest właśnie CIL (w uproszczeniu), a maszyna - CLR. Runtime to, po prostu, konkretna implementacja CLR (możesz sobie napisać własną jeśli chcesz), ale żeby była kompatybilna ze standardem, musi spełniać
  • Odpowiedz
Czy wiesz, że?

W .csproj możesz ustawić opcję UseArtifactsOutput.

<PropertyGroup>
<UseArtifactsOutput>true</UseArtifactsOutput>
</PropertyGroup>

Spowoduje ona to, że podczas kompilacji i publikacji, zamiast tworzyć oddzielnie foldery /bin, /obj, /publish w tej samej lokacji co .csproj - dla każdego projektu oddzielnie, utworzone one zostaną w folderze 'artifacts'. Co więcej, 'artifacts' znajduje się w tej samej lokacji co .sln, więc wszystkie projekty mogą produkować artefakty do tego samego folderu.

Więcej info -> docsy

#programowanie #
Hektorrr - Czy wiesz, że?

W .csproj możesz ustawić opcję UseArtifactsOutput.
``
<Pro...

źródło: artifact-output

Pobierz
@zibizz1: trochę popłynąłem bo jednak ten nowy feature tworzy oddzielne foldery pod projekty tyle, że w jednym centralnym miejscu.
📁 artifacts
📂 <Type of output>
📂 <Project name>
📂 <Pivot>

Jak faktycznie chcesz mieć wszystko wrzucane do jednego folderu outputowego to właśnie używa się Directory.Build.Props i myślałem że ten feature nieco upraszcza właśnie definiowaniego tego w build propsach.
Może podam inne użycie
  • Odpowiedz
#it #linux #ubuntu #windows #naukaprogramowania #dotnet #programowanie

Myślałem trochę jaki projekt by tu zrobić by pouczyc sie programowania(a raczej .net) i zeby było to coś ciekawszego no i wpadłem. Zrobię sobie kilka stron(czy tam jedną ale z kilkoma funkcjami) przy pomocy asp.net. Będą to strony pod moje potrzeby, czyli to-do, planer, sledzenie wydatkow i też tam sledzenie aktywnosci itp itd. No i dodatkowo chciałbym postawić własny serwer domowy, który będzie hostował te
@DoubleWu: Cóż - firmy idą w Javę, w Pythona, w C++. Taka trójca. .Net nigdy nie był popularny specjalnie. Szczególnie, że dopiero od paru lat stał się sensowny, ale lat zaniedbań ciężko będzie odwrócić.

Ale orientuj się, bo może z .Net jest jakaś praca
  • Odpowiedz
Garnet - otwarto źródłowy zamiennik Redis od Microsoftu zgodny z RESP (więc w teorii jest kompatybilny z obecnymi klientami Redisa).

Polecam zobaczyć porównanie wydajności między Redisem, DragonflyDB i KeyDB.

Więcej informacji tutaj:
https://www.microsoft.com/en-us/research/blog/introducing-garnet-an-open-source-next-generation-faster-cache-store-for-accelerating-applications-and-services/

#programowanie #redis #dotnet #csharp #backend #kubernetes #programista15k
Hektorrr - Garnet - otwarto źródłowy zamiennik Redis od Microsoftu zgodny z RESP (wię...

źródło: Garnet_Fig1

Pobierz
  • Odpowiedz
Proszę o odpowiedzi na pytania, skierowane do osób, które używają już .NET 8 i C# 12 w projektach.

1. Czy używacie Primary Constructors w swoich klasach?

public sealed class Foo(Bar bar) { ... }
2. Czy dotyczy to również klas ze wstrzykiwanymi zależnościami?

public sealed class Foo
{
private ILogger<Foo> logger;
public Foo(ILogger<Foo> logger)
{
this.logger = logger;
}
}

do:

public sealed class Foo(ILogger<Foo> logger)
{
}

3. Czy oznaczacie pola
4.to jest absolutny potworek.

Kiedyś mnie bardzo irytował kod z tymi nudnym konstruktora mi i listą pół. Ale to przeszkadza tylko na samym początku istnienia projektu, czyli niedługo.

Uważam, że ten ficzer przynosi więcej szkody, niż pożytku.
  • Odpowiedz
#dotnet #csharp #aspnet #naukaprogramowania

Po godzinach bawię się w asp.net, przerobiłem kilka kursów z udemy. Zrobiłem proste stronki typu restauracja/blog/cos tam gdzie były implementowane podstawowe rzeczy typu logowania, konta uzytkowników, autoryzacja czy w jednym z kursów nawet płatność. Gdzieś tam też ruszyłem Angulara ale niezbyt lubię front, bardziej wolę się trzymać backendu.
No i ogólnie nie mam zbytnio pomysłu co bym mógł zrobić swojego, tak aby było to przydatne do CV. Robić
@DoubleWu: cumplu wpadles wlasnie w pulapke, ja tez tak mialem na poczatku, jezeli jaraja cie jakies znaczki w terminalu(backend) aplikacja konsolowa tez jest uzyteczna.
Jezeli piszesz restowe API wystarczy ze dodasz swaggera czy co tam wspolpracuje z c plotkiem i to bedzie twoj frontend.

Jezeli chodzi o projekt to zrob cos ze swoimi zainteresowaniami, grasz w csa to zrob aplikacje do porownywania broni w zaleznosci od podanej odleglosci? Pobierz statystyki gracza
  • Odpowiedz
kochani jestem na studiach, pora wziac sie za programowanie na wlasna lape.

Sprawa wygalada tak, mam stronke w html, js i css
mam tez napisany przez siebie kalkulator wskaznikow ekonomicznych w csharpie
teraz jak jedno polaczyc z drugim?
moglby ktos pokierowac, z ktorej technologii skorzystac?
da to rade postawic na linuxie?

#dotnet #programowanie #csharp
Czołem Mirki,
Programuję już parę lat w #dotnet , #javascript i #node ale jako samouk chciałbym poznać bliżej koncepcje alokacji pamięci, struktury danych etc. Czy Waszym zdaniem lepiej zacząć od C++ czy #rust ? Za Rustem przemawia do mnie fajna dokumentacja oraz hype. Za C++ to, że jednak większość świata 'stoi' na C. W przypadku Rusta wiedziałbym gdzie zacząć ale przy C++ jest milion kursów wyglądających jak kurs C#. Książki rozważam ale