ASP.NET MVC проект на .NET Core в VS Code. Часть 2 (Добавляем Представление) C#

В предыдущей публикации мы создали простейший ASP.NET MVC проект на .NET Core и добавили в него контроллер. Весь проект состоял из 4 файлов и содержал только самое необходимое. Теперь мы добавим в этот проект представления.
Скачать исходник предыдущего проекта можно здесь: 
Скачать файл: sample001s.zip [2 Kb] (cкачиваний: 5)  

Приступим. Для начала добавим в наш проект каталог «View» (именно так принято именовать папку содержащую представления) в котором будут лежать все наши представления. Затем в каталоге «View» создадим подкаталог «SayHello» — в нем будут лежать представления для контроллера SayHello.
Создадим представление для Экшена Hello. Для этого в каталоге «SayHello» создадим файл «Hello.cshtml» с содержимым:

@{
    ViewData["Title"] = "Привет из представления";
}

<h2>HELLO !!!</h2>

<p>Привет из представления!</p>
Подробнее

ASP.NET MVC проект на .NET Core в VS Code. Часть 1 (Создаем проект и Добавляем Контроллер) C#

В этой публикации я надеюсь начать цикл повествований по разработке ASP.NET MVC приложения на .NET Core без использования Visual Studio. Для разработки приложения я буду использовать VS Code (по сути навороченный текстовый редактор), и больше ничего.

Начну я с создания пустого проекта и последовательного добавления в проект Контроллера, Представления и Модели, с постепенным включением в проект необходимых библиотек.

Поскольку сам я это делаю впервые, то могу местами ошибаться или нести какую нибудь «чушь» :), поэтому заранее приношу извинения за возможно не «кошерный» код или некорректное описание чего либо. Обещать могу лишь одно, приведенные примеры гарантированно работоспособны.

Итак Начнем. Первая публикация будет посвящена созданию ASP.NET Core MVC проекта и добавлению в него Контроллера.

Для начала, если вы этого ещё не сделали, установите .NET Core SDK и (если не хотите писать в блокноте) Visual Studio Code, всё это добро можно взять здесь: .NET Core SDK & Visual Studio Code. Платформу выбирать вам, у меня на Windows.

Подробнее

Создаем первый Web сайт с ноля на .NET Core C#

1. Устанавливаем .NET Core.

2. Создаем новый проект .NET Core

mkdir Sample01
cd Sample01
dotnet new


После выполнения этих команд в папке Sample01 появится 2 файла: «Program.cs», «project.json».
Это и есть простейший шаблон приложения на .NET Core.

Подробнее

Пример POST запроса через WebRequest C#

Пример POST запроса к сервису с использованием WebRequest на C#:

using System;
using System.Net;
using System.IO;

namespace Tester
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("RUN Tests for Service:");

            //Выполняем тестовый POST запрос к службе.               
            SendTestPostRequest(@"URL - сервиса", "Текст запроса");

            Console.WriteLine("Press any key for exit...");
            Console.ReadKey();
        }

        //Метод выполяющий запрос по указанному адресу и получающий ответ.
        static void SendTestPostRequest(string url, string data)
        {
            try
            {
                WebRequest request = WebRequest.Create(url);
                request.Method = "POST";
                string postData = data;
                request.ContentType = "application/x-www-form-urlencoded";
                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                byte[] postByteArray = encoding.GetBytes(postData);
                request.ContentLength = postByteArray.Length;

                System.IO.Stream postStream = request.GetRequestStream();
                postStream.Write(postByteArray, 0, postByteArray.Length);
                postStream.Close();
                HttpWebResponse response = (HttpWebResponse) request.GetResponse();
                Console.WriteLine("Response Status Description: " + response.StatusDescription);
                Stream dataSteam = response.GetResponseStream();
                StreamReader reader = new StreamReader(dataSteam);
                string responseFromServer = reader.ReadToEnd();
                Console.WriteLine("Response: " + responseFromServer);
                reader.Close();
                dataSteam.Close();
                response.Close();
            }
            catch(Exception ex)
            {
                //Если что-то пошло не так, выводим ошибочку о том, что же пошло не так.
                Console.WriteLine("ERROR: "+ex.Message);
            }
        }

    }
}
Подробнее

Получение полей таблицы в MSSQL - TSQL

Этот запрос возвращает набор полей таблицы со всеми характеристиками. Метод также применим и замечательно работает с представлениями VIEW.

SELECT 
   ORDINAL_POSITION
  ,COLUMN_NAME
  ,DATA_TYPE
  ,CHARACTER_MAXIMUM_LENGTH
  ,IS_NULLABLE
  ,COLUMN_DEFAULT
FROM   
  INFORMATION_SCHEMA.COLUMNS 
WHERE   
  TABLE_NAME = 'Название таблицы' 
ORDER BY 
  ORDINAL_POSITION ASC; 


А вот так можно узнать права пользователя.

sp_HelpUser имя_пользователя
Подробнее

Получаем программно серийный номер на ТСД Cipher 9300 C#

 У терминалов сбора данных Cipher с Windows CE — есть одна особенность, в отличие от всех других ТСД (во всяком случае Motorola(Symbol) и Datalogic) стандартными способами получить серийный номер не получится. Получить то он получится — но будет на всех устройствах одинаковый, что лично меня не устраивает. 

Однако этот глюк можно обойти и получить серийный номер при помощи API с библиотекой SystemApi_Ce_Net.DLL которая поставляется на диске с терминалом.

Ниже маленький примерчик кода — как это сделать:

using Cipherlab.SystemAPI;


int err = 0;

DataType.DataStruct.SYSINFO sysinfo = new DataType.DataStruct.SYSINFO();
            
err = SystemAPI.Function.GetSysInfo(ref sysinfo);

string serial = Encoding.UTF8.GetString(sysinfo.SerialNum,0,sysinfo.SerialNum.Length);


Полагаю комментарии излишни, и так всё достаточно просто и понятно.

Подробнее

Удаление временных таблиц в MSSQL

Иногда возникает необходимость, в ходе работы процедуры, удалить временно созданную таблицу которая может быть либо создана либо нет, тогда не достаточно просто написать например drop table #myTempTable — потому что в случае если таблицы не существует то запрос не выполнится и выдаст ошибку. Пример ниже показывает как правильно удалять временные таблицы в таком случае:

if exists (
	select * from tempdb.dbo.sysobjects o
	where o.xtype in ('U') 

	and o.id = object_id(N'tempdb..#myTempTable')
)
BEGIN
  DROP TABLE #myTempTable; 
END
Подробнее

Рекурсивная процедура поиска элементов ветки дерева в FireBird и Interbase

Время от времени приходится общаться с СУБД FireBird и Interbase. И вот недавно возникла необходимость поиска и выбора всех вложенных элементов дерева. В моём случае необходимо было удалить все вложенные группы дерева при удалении родительской группы и в дальнейшем организовать поиск всех вложенных элементов.

Удаление можно сделать на триггерах, а вот с поиском так не прокатит. Поэтому используем рекурсивную процедуру выборки. (заранее оговорюсь, рекурсия — это вариант для небольших и не очень нагруженных БД, если база большая и нагрузка на СУБД планируется существенная, то рекурсии лучше избежать, пример того как это можно сделать будет ниже)

Подробнее

Динамический вывод картинок в отчётах Crystal Report на C#

В данной публикации я расскажу каким образом в отчёт Crystal Report можно вывести требуемое количество изображений (например из базы данных).

!!! Для того чтобы публикация была понятна, рекомендуется к обязательному прочтению предыдущая статья Используем Crystal Report в C#.

Собственно, перепробовав много методов (в основном описанных на зарубежных сайтах — в Ру-нете как то не особо изучен этот вопрос), нашёл действительно работоспособный и эффективный метод вывода изображений в отчёт Crystal Report, который заключается в передаче изображений в отчёт через источник данных.

Подробнее