Pytanie uczestnika, które pojawiły się podczas szkolenia Programowanie w C# 6.0 z Visual Studio 2015 realizowanego w dniach 11-15.01.2017r.
Entity Framework znajduje połączenie w oparciu o plik konfiguracyjny app.config lub web.config zależnie od typu aplikacji. Wpis powinien znajdować się w kolekcji connectionstrings.
Zasada działania:
dokładniejszy opis: https://github.com/sulmar/ef-tutorial/wiki/Opis
Naj prościej można to zrobić za pomocą opcji Publish na projekcie. Mamy do wyboru 4 metody:
File System - projekt kopiowany jest do katalogu . Następnie trzeba przenieść pliki na serwer oraz samodzielnie utworzyć aplikację webową na serwerze IIS.
FTP - podobne działanie jak File System z tym, że pliki kopiowane poprzez protokół FTP.
Web Deploy Package - tworzona jest paczka instalacyjna(rozszerzenie pckg). Taką paczkę przenosimy na serwer i za pomocą narzędzia Web Deploy (trzeba go wcześniej zainstalować na serwerze) można wskazać paczkę i instalacja odbędzie się automatycznie. Connection string zostanie automatycznie podmieniony na produkcyjny.
Web Deploy - najwygodniejszy sposób. Wystarczy wskazać docelowy adres serwera na którym ma zostać zainstalowana aplikacja webowa i nacisnąć Publish. Na serwerze musi być zainstalowana usługa Web Deploy oraz skonfigurowane uprawnienia.
ASP.NET posiada wbudowany mechanizm walidacji za pomocą atrybutów (annotations). Wystarczy dodać atrybut np. [Required] do właściwości na klasie modelu. Dostępne atrybuty można znaleźć tutaj.
Warto zaznaczyć, że można utworzyć walidację opartą o wyrażenie regularne [RegularExpression] i w ten sposób sprawdzić poprawność np. kodu pocztowego.
Niestety problem pojawia się gdy chcemy użyć bardziej złożonych walidacji składających się z kilku właściwości, np. data zakończenia nie może być wcześniejsza od daty rozpoczęcia. Mechanizm annotacji tego nie umożliwia.
Dlatego polecam bibliotekę FluentValidation, która umożliwia tworzenie prostych oraz zaawansowanych walidacji. Walidacje zapisuje się w osobnych klasach za pomocą wyrażeń Lambda.