Robię sobie taka prościutką aplikację Todo z wykorzystaniem asp net core i jako bazy danych używam mongodb.

W relacyjnej bazie danych zapisywałbym w osobnych tabelach projekty oraz zadania, to też stworzyłbym sobie osobne repozytoria do wykonywania odpowiednich operacji CRUD-owych.

A skoro w MongoDb mogę zapisywać całe obiekty to powinienem stworzyć jedno repozytorium TodoRepository i tam metody w stylu:
- AddProject(),
- GetProject(),
- RemoveProject(),
- AddTaskToProject()
- itp....
czy również powinienem stworzyć
@bielu000: Nie ma jednego słusznego rozwiązania. Są różne podejścia, ale dobrze jest przyjąć jakiś jeden spójny poziom abstrakcji. Czyli np. ProjectRepository, w którym masz operacje CRUDowe związane z projektem oraz osobne TaskRepository związane z taskami. Dyskusyjne są takie operacje jak AddTaskToProject(), bo to już trochę bardziej płynne, choć w tym konkretnym przypadku bardziej TaskRepository (bo albo to jest w ramach dodawania nowego taska, albo w ramach jego edycji).
Robienie jednego dużego
@bielu000 nie polecam ani nie zniechęcam ale prawda jest taka że wg zaleceń ms nie powinno się implementowac repozytoriow dla ef w wersji bodajże 6 I wyższych bo dbcontext jako tako jest implementacją wzorca repozytorium i też unit of work czyli możesz robić warstwę serwisów i tam operować na dbcontext
ASP.NET Core 2 Web API, VS 2017
Mam problem (swój kod wzorowałem na https://www.codeproject.com/Articles/1205160/ASP-NET-Core-Bearer-Authentication)

Dlaczego przy próbie odpalenia programu (https://pastebin.com/iF1ntydq ) wywala mi wyjątek?

Wystąpił wyjątek System.ArgumentNullException
HResult=0x80004003
Message=String reference not set to an instance of a String.
Source=
Ślad stosu:
at System.Text.Encoding.GetBytes(String s)
at Mojportal.Api.Startup.<>c_DisplayClass80.b_0(JwtBearerOptions options) in C:\Users\marci\OneDrive\Dokumenty\Visual Studio 2017\Projects\Mojportal\Mojportal.Api\Startup.cs:line 45
at Microsoft.Extensions.Options.ConfigureNamedOptions1.Configure(String name, TOptions options)
at Microsoft.Extensions.Options.OptionsFactory
1.Create(String name)
at Microsoft.Extensions.Options.OptionsMonitor1.<>c__DisplayClass10_0.b__0()
at System.Lazy
1.ViaFactory(LazyThreadSafetyMode
#aspnet #aspnetcore #csharp #programowanie

Chciałbym dać użytkownikom możliwość używania mojej aplikacji bez konieczności logowania. Generuję więc losowe ciasteczko, które posłuży jako identyfikator w bazie (zamiast nazwy użytkownika w przypadku bycia zalogowanym).

W Asp.NET Core Identity informacje o nazwie i identyfikatorze zalogowanego użytkownika przechowywane są w tym miejscu:

context.User.Identity.Name
Czy mogę do obiektu Identity dołożyć w jakiś sposób własną wartość (np. context.User.Identity.TemporalId) żeby móc mieć dostęp do tego tymczasowego indentyfikatora w każdym
Elo mireczki. Potrzebuję zrobić chat oraz system powiadomień w czasie rzeczywistym w #aspnetcore rest api i pytanie jak do tego podejść? SignalR Core jest w fazie alpha i nie wiem czy jest obecnie sens tego używać. Jakaś alternatywa do tego? Czy może pisać w czystym AspNetCore.WebSockets?

#dotnet #csharp
@hiroszi: ok jest za wcześnie i nie widziałem .core :( core raczej mało a z tego co rozmawialem ze znajomymi dużo firm eksperymentuje z .net core w prywatnych projektach więc może się to jakoś ruszy
Mam w kontrolerach kilka metod, które pełnią jakąś określoną funkcję (np. sprawdzają czy użytkownik jest właścicielem jakiegoś rekordu w bazie). W każdym z kontrolerów mam ten sam zestaw metod, kopiuję je za każdym razem gdy tworzę nowy kontroler.
Przydałoby się to zebrać jakoś do kupy, żeby wszystkie kontrolery brały te metody z jednego miejsca. Jaki jest na to najlepszy sposób? Jak to się zazwyczaj robi? Użyć (w jakiś sposób) Dependency Injection? Utworzyć
#aspnet #aspnetcore #programowanie #itsecurity

Zamierzam zmodyfikować trochę mechanizm logowania w mojej aplikacji ASP.net Core i w związku z tym może się pojawić możliwość, że coś przeoczę i w wyniku błędu niepowołane osoby uzyskają dostęp do nieprzeznaczonego dla nich Controllera. Słyszałem, że dobrym pomysłem jest używanie Unit Testów, do automatycznego testowania najistotniejszych części mojej aplikacji, z tym że nigdy czymś takim się nie zajmowałem.

Wyobrażam sobie to mniej więcej tak, że skrypt loguje
@Wunderwafel: To nie są testy jednostkowe. To już podchodzi pod testy REST API.
Potrzebujesz narzędzia, w którym przygotowujesz scenariusz - Logowanie -> Kontrolery -> Assert, czy uzyskałeś dostęp czy nie.

Może Postman da radę (To jedyna rzecz, jaka mi przychodzi do głowy. Jeśli nie da rady, to szukaj czegoś innego [Albo pisz sam oddzielną aplikację do testowania.])