Всем доброго времени суток. Есть задание, создать набор приложений для парсинг лог файла. Суть заключается в том что бы парсить лог файл по определенным полям и сохранять результат в базу данных(допустим MS SQL),набор полученных в результате парсинга данных расширить полем Геолокации и при помощи доступных онлайн сервисов заполнить его страной клиента. Само приложение парсера выполняется как отдельный проект в winforms , а приложение для отображения результата парсинга в формате JSON - asp.net webAPI с набором роутов.
Сам файл мне распарсить вроде бы удалось через file.readline и splitы. Правда у разных запросов бывает разное кол во частей , я это попытался устранить с помощью switch(проверяя длинну массива , тоесть каждой разбитой строки). Вопрос это вообще нормальный вариант и решение задачи для такого? Слышал что можно использовать regexpы но в них я очень туго разбираюсь, и не знаю какой вариант для парсинга будет более правильным. А вот основные вопросы: 1. как расширять данных с помощью поля геолокации? Откуда и как брать данные страны? В запросах лога есть или имя хоста или ip адрес. Перерыл очень много гугла но дельного так ничего не нашел. 2. Так как у меня опыта с самим asp.net webAPI маловато, я не понял что значит набор приложений, asp + winforms. Вот у меня есть приложение на winforms и там открываю файл парсю его и сохраняю в бд(без геолокации пока), вот , а как дальше , я так понял нужно создать еще проект asp и в нем подключить пространство имен по winforms что бы был доступ к бд, или как то их еще можно по человечески соединить?
Заранее спасибо за помощь!
Соединить приложение winform и asp.net с одной базой не чего сложного нет. Я думаю ты используешь Entity Framework. Просто в двух проектах делаешь одинаковые модели если есть и одинаковый класс для контекста и опять же одну и туже строку подключения используешь. Вот есть пример
Я тут приложение на wpf и asp.net mvc с одной базой взаимодействуют. вот сервер
https://github.com/Ascolon/CinemaBackend
вот приложение для рабочего стола
https://github.com/Ascolon/CinameDesktop
В wpf приложении есть Helper.cs
и там метод
static public List<Movie> List()
{
var request = (HttpWebRequest)WebRequest.Create("http://cinema.somee.com/api/values");
request.ContentType = "application/xml";
var root = new XmlRootAttribute("ArrayOfMovie")
{
Namespace = "http://schemas.datacontract.org/2004/07/BackendPart.Models"
};
XmlSerializer serializer = new XmlSerializer(typeof(List<Movie>), root);
var result = new List<Movie>();
XmlDocument c = new XmlDocument();
using (Stream stream = request.GetResponse().GetResponseStream())
{
result = (List<Movie>)serializer.Deserialize(stream);
}
return result;
}
идет запрос на сервер в ответ приходил xml документ. Его на основе модели превращаем в List и там уже с коллекцией делаем что хотим
Вместо
var request = (HttpWebRequest)WebRequest.Create("http://cinema.somee.com/api/values");
адрес который будет при запуске сервера типа
`http://localhost:45344/api/values"`
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники