Устанавливаем .NET Core на Ubuntu Server 14.04 и запускаем сайт на ASP.NET Core
.NET CoreСразу к делу.
Устанавливаем .NET Core на Ubuntu
Настраиваем доступ к репозиторию
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
Читаль далее...
ASP.NET MVC проект на .NET Core в VS Code. Часть 1 (Создаем проект и Добавляем Контроллер)
.NET CoreВ этой публикации я надеюсь начать цикл повествований по разработке ASP.NET MVC приложения на .NET Core без использования Visual Studio. Для разработки приложения я буду использовать VS Code (по сути навороченный текстовый редактор), и больше ничего.
Начну я с создания пустого проекта и последовательного добавления в проект Контроллера, Представления и Модели, с постепенным включением в проект необходимых библиотек.
Поскольку сам я это делаю впервые, то могу местами ошибаться или нести какую нибудь «чушь» :), поэтому заранее приношу извинения за возможно не «кошерный» код или некорректное описание чего либо. Обещать могу лишь одно, приведенные примеры гарантированно работоспособны.
NLog добавление логирования в .NET Core WEB приложение
.NET CoreПример добавления логирования в WEB приложение на .NET Core на основе NLog.
Первоначально добавляем через Nuget пакет:
NLog.Web.AspNetCore
Затем добавляем в корень проекта файл nlog.config следующего содержания:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="info"
internalLogFile="internal-nlog.txt">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<!-- the targets to write to -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="logs/nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
<!-- another file log, only own logs. Uses some ASP.NET core renderers -->
<target xsi:type="File" name="ownFile-web" fileName="logs/nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip non-critical Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" maxLevel="Info" final="true" />
<!-- BlackHole without writeTo -->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
В данном файле содержатся настройки логирования, куда и как и что сохранять. Обязательно для данного файла необходимо выставить в параметрах свойство Copy to output directory: Copy Always.
Читаль далее...
Работаем с базой данных MySql из .NET Core
.NET CoreВ данной публикации мы рассмотрим как подключиться к базе данных MySql из приложения на .Net Core.
1. Если у вас ещё не установлен .Net Core то устанавливаем: .NET Core.
2. Далее создаем новый проект .NET Core
mkdir MySqlCoreSample
cd MySqlCoreSample
dotnet new
После выполнения этих команд в папке MySqlCoreSample появится 2 файла: «Program.cs», «project.json».
Это простейший шаблон приложения на .NET Core.
В эти файлы мы и будем вносить изменения, для чего будем использовать Visual Studio Code.
3. Используя расширение NuGet добавляем в наш проект "MySql.Data.7.0.6-ir31"
И добавляем зависимость в файле «project.json».
Читаль далее...
Авторизация в приложении через Вконтакте VK на C#
.NET CoreДанная публикация написана как простая инструкция для себя, на память, чтобы не забыть.
Предложенный вариант использовался для авторизации через токен VK в серверном приложении.
Для начала создадим метод отправки HTTP запроса и получения ответа от сервера:
/// <summary>
/// Отправляем запрос на получение
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
private static string GetRequest(string host, string req)
{
string str = "";
var Vk = new HttpClient();
Vk.DefaultRequestHeaders.Add("Connection", "close");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(req);
request.UseDefaultCredentials = true;
request.PreAuthenticate = true;
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
request.Host = host;
request.UserAgent = "RM";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = false;
using (HttpWebResponse responsevk = (HttpWebResponse)request.GetResponse())
using (var stream = responsevk.GetResponseStream())
using (var streamReader = new StreamReader(stream, Encoding.UTF8))
{
str = streamReader.ReadToEnd();
}
return str;
}
Читаль далее...
ASP.NET MVC проект на .NET Core в VS Code. Часть 2 (Добавляем Представление)
.NET CoreВ предыдущей публикации мы создали простейший ASP.NET MVC проект на .NET Core и добавили в него контроллер. Весь проект состоял из 4 файлов и содержал только самое необходимое. Теперь мы добавим в этот проект представления.
(Скачать исходник предыдущего проекта можно здесь: Sample001s.zip)
Приступим. Для начала добавим в наш проект каталог «View» (именно так принято именовать папку содержащую представления) в котором будут лежать все наши представления. Затем в каталоге «View» создадим подкаталог «SayHello» — в нем будут лежать представления для контроллера SayHello.
Пример синхронного AJAX запроса на JQuery и .NET Core
.NET CoreВ данной публикации приведен пример того как выполнить асинхронный запрос к серверу без перезагрузки текущей страницы, с помощью JQuery на .NET Core.
Итак приступим.
Для начала нам потребуется создать проект Web сайта на .NET Core, например как здесь: https://babakov.net/blog/netcore/271.html
Теперь модифицировать или создать новый контроллер Home с двумя методами:
Index — отображает страницу
GetInfo — обрабатывает запрос и возвращает ответ в формате JSON
Создаем первый Web сайт с ноля на .NET Core
.NET Core1. Устанавливаем .NET Core.
2. Создаем новый проект .NET Core
mkdir Sample01
cd Sample01
dotnet new
После выполнения этих команд в папке Sample01 появится 2 файла: «Program.cs», «project.json».
Это и есть простейший шаблон приложения на .NET Core.
Читаль далее...
Crop Image - Пример вырезания изображения с изменением размера и использованием библиотеки SixLabors.ImageSharp на .NET Core
.NET CoreПростой пример класса с методом для получения квадратного превью изображения в .NET Core, при помощи библиотеки SixLabors.ImageSharp.
Пример:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.PixelFormats;
using System;
using SixLabors.ImageSharp.Formats.Jpeg;
namespace TransformImage.Methods
{
public static class ImgActions
{
public static void CropImage(string path, string path_in, int size)
{
try
{
// Открывает файл, определяет тип файла и декодирует
using (Image<Rgba32> image = Image.Load(path))
{
// Теперь изображение находится в независимой от формата файла структуре в памяти как серия Rgba32 пикселей
int line = image.Height < image.Width ? image.Height : image.Width;
// Вырезаем часть изображения (квадрат по минимальной стороне)
image.Mutate(tx => tx.Crop(line, line));
// Изменяем размер изображения
image.Mutate(ctx => ctx.Resize(size, size));
// Записываем в заданном формате с указанным качеством, без метаданных для экономии места
image.Save(path_in,new JpegEncoder{Quality = 100, IgnoreMetadata = true});
}
}
catch (Exception ex)
{
Program.logger.Error(ex, ex.Message);
}
}
}
}
Читаль далее...
SixLabors.ImageSharp SixLabors ImageSharp NET Core C# Crop Image Image Crop Resize
Немного размышлений по поводу .NET Core
.NET Core.NET Core появился уже достаточно давно, претерпел ряд изменений и даже обзавелся второй версией.
С появлением .NET Core в архитектуре .NET появилось понятие .NET Standard — представляет спецификацию интерфейсов, которые должны реализовывать все версии .NET, что дает возможность разработчикам создавать переносимые библиотеки, которые возможно использовать в разных реализациях .NET благодаря общему набору интерфейсов.
Разные реализации .NET реализуют определенные версии .NET Standard.