ASP.NET MVC проект на .NET Core в VS Code. Часть 1 (Создаем проект и Добавляем Контроллер)
.NET CoreВ этой публикации я надеюсь начать цикл повествований по разработке ASP.NET MVC приложения на .NET Core без использования Visual Studio. Для разработки приложения я буду использовать VS Code (по сути навороченный текстовый редактор), и больше ничего.
Начну я с создания пустого проекта и последовательного добавления в проект Контроллера, Представления и Модели, с постепенным включением в проект необходимых библиотек.
Поскольку сам я это делаю впервые, то могу местами ошибаться или нести какую нибудь «чушь» :), поэтому заранее приношу извинения за возможно не «кошерный» код или некорректное описание чего либо. Обещать могу лишь одно, приведенные примеры гарантированно работоспособны.
Ошибка - UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: inval id character
PythonОщибка: UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: inval id character
Происходит при попытке запустить проект командой: python manage.py runserver
Лечение:
Ищем файл: python\lib\site-packages\django\utils\autoreload.py
Затем добавляем в функцию restart_with_reloader строчку:
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].encode('ascii', 'replace'))
Должно получиться как-то так:
def restart_with_reloader():
while True:
args = [sys.executable] + ['-W%s' % o for o in sys.warnoptions] + sys.argv
if sys.platform == "win32":
args = ['"%s"' % arg for arg in args]
new_environ = os.environ.copy()
new_environ["RUN_MAIN"] = 'true'
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].encode('ascii', 'replace'))
exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
if exit_code != 3:
return exit_code
После этих изменений, лично у меня всё заработало, Python 3.4 + Windows 10.
Надеюсь и у вас всё получится. Комментировать...
Switch Expressions - Выражения переключатели - Новинка в C# 8
Язык программирования C#Хорошая новость, теперь можно реализовать SWITCH по новому.
В C# 8 версии вводятся выражения-переключатели, которые реализуют более краткий синтаксис возвращения значения.
Вот синтаксис выражения SWITCH на примере:
static string Display(object o) => o switch
{
Point { X: 0, Y: 0 } => "origin",
Point { X: var x, Y: var y } => $"({x}, {y})",
_ => "unknown"
};
В этом примере сначала проверяется соответствие шаблону типа Point, а затем шаблону свойств внутри {фигурных скобок}.
Затем символ подчеркивания "_" Описывает шаблон сброса, аналогичный «default:» для операторов switch.
Далее