You are on page 1of 5

Міністерство освіти та науки України

Харківський національний університет радіоелектроніки

Кафедра ЕОМ

Лабораторна робота №4
з дисципліни «Спеціальні розділи програмування на .NET»
на тему:
"ПРОГРАМУВАННЯ СЛУЖБ WINDOWS"

Варіант 2

Виконав: Прийняв:
ст.гр. СПм-19-2 Федорченко В. М.
Слісаренко М.В.

Харків 2020
Мета роботи:

Придбання практичних навичок з створювання та використання служб WIN-


DOWS у програмах мовою С#.
Удосконалювання навичок роботи в середовищі MS Visual Studio.

1.2 Хід роботи


https://github.com/KolyaSlisarenko/project/tree/main/LabWinService

1. Відповідно до варіанту створити збірку (* .dll), що містить типи (тип) описує


задану предметну область (допустимо використовувати розробки ЛР1,2):

Предметная область
варианта
2 Организация
(Сотрудники)

2.Створити клієнтську програму, що забезпечує:


- формування колекції об'єктів предметної області;
public IEnumerable<Employee> InitializeCollection()
{
var collection = new List<Employee>
{
new Employee { Name = "Alex", Address = "New York, Central street 12"},
new Employee { Name = "Raychel", Address = "Boston, Washington street 123"}
};

return collection;
}

- взаємодія зі службою Windows (ініціалізація стану об'єкта, зміна стану і т.п.);


static void Main(string[] args)
{
Console.WriteLine("Введите команду");
Console.WriteLine("Доступые команды : getall, add");

while(true)
{
var entered = Console.ReadLine();
if (entered == "getall")
{
WriteEmployee();
}
else if (entered == "add")
{
Console.WriteLine("Enter name");
var name = Console.ReadLine();
Console.WriteLine("Enter address");
var address = Console.ReadLine();

Employee employee = new Employee{Name=name,Address=address};


CreateEmployee(employee).Wait();
Console.WriteLine("Employee added!");
WriteEmployee();
}
else
{
Console.WriteLine("Such command not exists");
}
}
}

3. Реалізувати службу Windows (створити, встановити), забезпечує:


- взаємодія з клієнтом;
[Route("employees")]
public class EmployeesController : ControllerBase
{
[HttpGet]
public IEnumerable<Employee> Get()
{
var server = new EmployeeServer();
var employees = server.GetStoredCollection();

return employees;
}

[HttpGet]
[Route("initialize")]
public void Initialize()
{
var server = new EmployeeServer();
var employees = server.InitializeCollection();
server.SaveCollection(employees);
}
[HttpPost]
[Route("add")]
public void Add([FromBody]Employee employee)
{
EventLog.WriteEntry(
"Application",
DateTime.Now + " Received:" + employee.Name + " " + employee.Address);

var server = new EmployeeServer();


server.AddToCollection(employee);
}
}

* -запис подій зміни стану об'єкта в журнал подій.


EventLog.WriteEntry("Application", DateTime.Now + " Received:" + employee.Name + " " + employee.Address);

4 Запустити службу за допомогою явного дії користувача:


варіант 2 - вручну з диспетчера служб;
1.3 Висновки:
В ході даної роботи були виконані завдання відповідно до поставленої мети.
Результати виконання завдання представлені у звіті.

You might also like