Serwus!
Uczę się ASP.NET MVC i mam kilka pytań.
1. Database First vs Code First - czego powinno/używa się w większych projektach?
2. Czy tworzenie obszarów ( Areas ) to dobra praktyka?
3. Jeżeli mam stworzone Area o nazwie Admin, gdzie może on edytować, dodawać, usuwać produkty to gdzie powinienem stworzyć klasę Product i kontekst do bazy danych? W obszarze Admin/Models czy normalnie w folderze Models?
4. Czy używać czegoś takiego jak
źródło: comment_MOvrcskAIuHnBptbzm9LKYhrk6lerulr.jpg
1. Database First vs Code First - czego powinno/używa się w większych projektach?


@JewelOfTheNile: Częsciej spotykana praktyka to code first, w szczególności w przypadku szybkich projektow. Ale nie ukrywajmy oba podejścia występują. Np. gdy firma musi operować na jakiejs gotowej bazie klienta lub duzych korpo projektów i baz współdzielonych miedzy wieloma projektami.

2. Czy tworzenie obszarów ( Areas ) to dobra praktyka?

Tak jesli projekt jest duży :) Plusem Areas w
Mirki jak to jest z testowaniem Entity Framework Core? Jakiś czas temu naczytałem się, że nie ma sensu robić abstrakcji nad DbContext w postaci dodatkowej warstwy repozytorium, bo rzekomo sam context to już repozytorium, UoW i w ogóle super się to testuje. A zacząłem próby testowania tego, i za fixa nie idzie dobrze zmockować DbContextu, bo nie działają np. metody rozszerzające Include (,)

Testował ktoś z was apkę
Mirki, dziś darmowy #ebook z #packt: "ASP.NET Core and Angular 2"
https://www.packtpub.com/packt/offers/free-learning

Polecam obserwować: #packtpubfreelearning

Jeśli ktoś się spóźni i chce książkę proszę od razu na PW adres email wraz z tytułem książki. Zgodnie z polskim prawem nie można legalnie udostępnić tych zasobów masowo. Ale można bezpośrednio, korzystając ze stosunku towarzyskiego, więc podeślę.

źródło: comment_m33wyCG7G8bpOc7VbXQJBQ5BWOeTi5Ku.jpg
Mam tabelę z polami Id i Nazwa (nie bijcie za polskie nazewnictwo), w drugiej tabeli mam klucz obcy w postaci Id tabeli "Typ" w której mogę wybrać jakim typem jest dana atrakcja. Aktualnie wyświetla mi się w wyborze Id ale chciałem, żeby na rozwijanej liście były nazwy z pola "Nazwa".
Na dole jest kawałek kodu, który odpowiada za tę rozwijaną liste i nie wiem jak go zmienić, ktoś pomoże?

#csharp #aspnet #
źródło: comment_6OaMDhz1Lq78IPT6mSVYMnbUBT5oq0kR.jpg
@blackphoenix: No i? Polski produkt, polskie nazwy. To mi się akurat u Niemców podoba, nie #!$%@? się w tańcu, jak ktoś nie rozumie po niemiecku to ma się nauczyć, znam już paru Amerykanów co pięknie kody błędu po niemiecku rozumie.
#programowanie #aspnet #webdev Cześć, pytanko dotyczące ASP.NET, mianowicie chodzi mi o długość życia modeli. Żeby to lepiej zrozumieć, to sobie dałem następujący przykład. Mamy kontroler "Testowy" z dwoma metodami:http://prntscr.com/hbnn71
Do klasy FinalOrder wrzucamy nasz model samochodu, całość przekazujemy do widoku.
http://prntscr.com/hbnnpv W widoku chcielibyśmy dodać jakieś nowe właściwości do naszego modelu, być może poprawić stare. (W tym miejscu, w trybie debugowania w Modelu cały czas widoczny jest obiekt Car z prawidłowo
Hej Mirki potrzebna pomoc, pisze sobie stronkę która wykorzystuje Google api v3 (Mapa Google) pobieram lokalizacje obecna, dodaje Google marksy na mapę wszystko fajnie działa. Dodam ze w #javascript oblicza odległości do każdego Marksa mam tez searchbox do wyszukiwania ulic tez googlowy . I tutaj zaczynaja sie schody bo współrzędne tych punktów otrzymuje z webserwisu (nie wspomniałem ze technologia to #aspnet ) istnieje jakiś sposób aby przesłać z javascriptu do .netu obecna
@Piateczka: jak jednokierunkowa to w javascript new img z podaniem src do skryptu + parametry get. jezeli dwukierunkowa to moze tak samo jak z obrazkiem tylko javascript? ewentualnie websocket. czemu nie ajax?
#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
@KorelacjaProkrastynacji: na pewno przyda Ci się wiedza dot. N-tier architecture, inverted n-tier architecture, budowanie softu z pomocą CI/CD, SOLID principles, NHibernate, NUnit, TDD, BDD, EntityFramework. Na początek to i tak dużo, ale to wymagania rynku i tylko na tym zyskasz posiadając jakąś sensowną wiedzę w tych tematach. Oczywiście przećwicz wszystko jakimś projekcikiem żebyś miał praktyczne jakieś doświadczenie z tym związane (stron z tematami projektów jest w brud, ewentualnie zrekonstruuj jakiś serwis
na juniora to wystarczy wiedzieć czym się różnią typy wartościowe od referencyjnych i znać jakieś podstawowe wzorce projektowe


@Priya: kiedy ostatnio rekrutowałeś się na juniora bez doświadczenia lub z małym doświadczeniem? Piszesz bzdury jeśli uważasz, że to wystarczy to czas zweryfikować fakty.
@pepepanpatryk: ja korzystałem, ale w sumie poza uproszczonym routingiem, konfiguracją i zwracaniem danych(wrzucasz dane do Dictionary z kluczem typu string i nancy już ładnie ci to przerobi na JSON) nie za bardzo widzę zalety(ale może to tylko dlatego, że pisałem tylko REST API do standalonowej apki)
@pepepanpatryk: używałem tego, nawet wdrożyłem dwie albo trzy aplikacje produkcyjnie.
Ogólnie całkiem przyjemny mini framework. Z rzeczy, które mi się bardzo podobały to "pipe / pipeline" z eventami, w które można się było fajnie wbijać. Teoretycznie możesz to hostować na linuxach, choć nowe .net core 2 (w sumie 1 również) też możesz.

Ogólnie miło wspominam, ale raczej do czegoś małego albo do napisania "na szybko".

Do dużych, rozbudowanych systemów to jednak
Mam pewien problem, próbuje zrobić pagination w swojej apce (.NET CORE) i sprawa wygląda tak: w repozytorium mam funkcję, która zwraca po prostu całą IQueryable tabelę, następnie pakuję ją do funkcji która, która bierze odpowiednią ilość danych i pakuje je jako swój typ generyczny PagedList. Ale w internetach przeczytałem, aby w repozytorium, że nie powinno się zwracać IQueryable, więc innym wyjściem byłoby zwrócenie IEnumerable wpakowanie do funkcji i tam użycie na tej
@krzysztofu: Platforma, która zawiera zarówno środowisko do uruchomienia programu, ale też biblioteki podstawowe.

Generalnie .NET Framework musi być zainstalowany, żeby odpalić program (napisany w C#, F#, VB, czy też dowolnym języku, który parsuje się do IL).

ASP.NET pobieramy teraz jako paczki z Nugeta i jest to zbiór bibliotek, które pozwalają na wystawienie aplikacji Webowej.

ASP potrzebuje .NET Framework (albo .NET Core, ale to śpiew przyszłości), ale .NET Framework nie potrzebuje ASP.
Cześć mirki zastanawiam się trochę na koncepcją używania Commands/Queries zamiast tradycyjnego repozytorium.
W zasadzie trafiłem na post Jimmy-ego Bogard-a, gdzie proponował podobne rozwiązanie zamiast stosowania repozytorium.

Moja interpretacja tego co on tam napisał, wygląda mniej więcej tak:

Interfejs dla queries

public interface IQueryHandler
where TResult: class
where TArg: class
{
TResult Execute(TArg query);
}

Przykładowa implementacja:

public class TreesTransQuery : IQueryHandler, TreeTransQuery>
{
private readonly DatabaseContext _context;
public TreesTransQuery(DatabaseContext context)
{
_context
@pepepanpatryk: Wydaje mi się, że można to zrobić jeszcze bardziej generycznie, korzystając z _context.Set i ograniczyć użycie dodatkowych jeszcze obiektów dla każdego zapytania, jeżeli będzie ono np. takie samo dla wielu różnych encji :>
@pepepanpatryk: Przewaga Query nad Repo jest taka, że możesz w bazowej klasie zaimplementować logikię, która będzie wykonywana przed/po głównej metodzie(Execute). Czyli np. możesz tam sprawdzić uprawnienia, logować coś itd. Za to przy Repo będzie mniej kodu.
#programowanie #webdev

Jeszcze niedawno jak pisało się aplikację webową, to robiło się jeden projekt. Backend (np. w #spring lub #aspnet) i w tym samym projekcie robiło się frontend (jakieś Spring MVC z szablonami w JSP lub odpowiednik). Teraz robi się API REST i dzięki temu backend jest bardziej niezależny od frontendu (jakiś #angular #react czy coś innego).

I są dwa podejścia jak można do tego podejść.
1. Robimy dwa oddzielne projekty.
@mk321: Dwa projekty.
Development:
- backend - developujesz i normalnie uruchamiasz.
- frontend - uruchamiasz na developerskim serwerze (praktycznie wszystkie narzędzia powinny coś mieć, Webpack ma na 100%) i developujesz z "hotswapem" (po każdej zmianie jest rebuild cząstkowy i refresh).

Deployment: deployujesz na dwa rożne serwery (dla backendu jakiś Tomcat, dla frontendu coś co serwuje statyczne pliki). W przyszlości pozwoli to np. zrobić wsadzić load balancer, cdny i inne dziwne rzeczy
Cześć mirki.

Mam takie pytanko.

Robimy sobie taki projekt i sytuacja wygląda tak, że klient frontowy przesyła mi json-y w postaci:


Następnie powinno to być przemielone przez kilka metod po stronie backendu, tak aby uzyskać z tego pewne informacje, potworzyć obiekty i przygotować do wysłania do bazy.

M.in. z w/w danych tworzone będą obiekty typu TreeNode, których klasa wygląda tak:

public class TreeNode
{
public int Id { get; protected set; }
zastanawiałem się jeszcze jak baza mogła by nadać odpowiednie ID, oraz ParentId, bo w sumie nie wiedziała by, która encja jest w jakiej relacji z inną


@pepepanpatryk: nie pamiętam już jak EF bo dawno cokolwiek robiłem, ale NHibernate radzi sobie z tym całkiem dobrze
Cześć,

Finalny, 24 odcinek mojego kursu programowania został w końcu opublikowany, a w nim wstęp do systemów rozproszonych i mikroserwisów. Oczywiście to nie koniec - więcej wartościowego materiału na kanale pojawi się już w niedalekiej przyszłości ( ͡° ͜ʖ ͡°).

#programowanie #programista15k #programujzwykopem #dotnet #dotnetnews #dotnetcore #csharp #aspnet #spetz #akademiaspetza
@qski: a tak się przyjęło od początku to już nie zmieniałem.
@KingFight: nie i nie wiem czy to ma jakiś sens, ponieważ to wprowadza pewne zobowiązania, a na ten moment nie mam pewności czy zdołałbym się z nich wywiązać, bo sporo się dzieje :).
@Imago91: od kilku miesięcy na Macu i dodatkowo na Linuxie od roku. Niestety UWP nigdy się nie zajmowałem, w przeszłości tylko WPF/Silverlight, więc pewnie szukałbym czegoś w tematyce MVVM, bo z tego co kojarzę tam stosuje się dość podobne rozwiązania.
Czy można w .net core za pomocą statycznej metody dodać sobie do kontenera tej klasy coś w tylu
- klucz -> wartość, gdzie wartość jest nazwą innej klasy, która będzie wykorzystywana do wstrzykiwania np. w serwisie?

Na chwilę obecną mam tak, że metoda sama tworzy te instancje poprzez new, ale przez to nie działa mi dobrze kontener DI i w innych miejscach gdzie wykorzystuje obiekt tej kasy, wywala null reference

#csharp #