2016-10-24 11 views
1

Я только начал свою стажировку в качестве студента-разработчика.Является ли «консольный тип» приложения подходящим для моего решения? (C#)

Мне нужно написать программу на C#, которая будет читать CSV-продукт, затем проанализировать его, сопоставить и вставить или обновить в базу данных SQL Server.

Программа будет работать на Windows VPS и должна выполняться ежедневно, так как CSV также будет обновляться ежедневно. Мне нужно автоматизировать этот процесс.

SO прийти на мои вопросы:

1. Могу ли я пойти с консольным приложением? (потому что мне не нужен какой-либо графический интерфейс)

2. Будет ли такая программа с вложенными циклами для сбоя вставки/обновления или быть слишком тяжелой в БД, поскольку CSV может содержать + 100 тыс. записей?

Любое наведение в правильном направлении значительно apreciated

+1

Должно ли приложение работать все время для обработки фида? Если это так, консольное приложение, вероятно, не подходит, и вам следует изучить приложение Windows Service. Вы также должны посмотреть Bulk Insert для транзакций с БД. –

+0

Не нужно запускать все время только один раз в день, чтобы добавлять новые продукты, которые могут существовать в обновленном корте CSV, или обновлять любые существующие продукты, где цена или запас могут быть изменены. Вставляет ли объемная вставка также массовое обновление существующих записей? – eekje87

+0

Нет, но посмотрите здесь, как получить много обновлений. http://stackoverflow.com/questions/27933584/how-to-bulk-update-with-sql-server Что касается вашего приложения, даже если он работает только один раз в день, если это консольное приложение, кому-то придется начинать, что каждый чтобы запустить его. Если это служба Windows, вы можете оставить ее в фоновом режиме и установить время, когда вы хотите получить доступ к фиду. –

ответ

0

1. Могу ли я пойти с консольным приложением? (потому что мне не нужен какой-либо графический интерфейс) Да, вы можете Консольное приложение и расписание задач для запуска этой программы ежедневно. Также вы можете написать Служба Windows - в этом случае ваша программа будет работать в фоновом режиме.

2. Будет ли такая программа с вложенными циклами для сбоя вставки/обновления или быть слишком тяжелой в БД, поскольку CSV может содержать + 100 тыс. Записей?

100K + строит свое значение для MS SQL. Но обязательно нужно написать код правильно. Я проанализирую его, а затем вставлю в db в несколько потоков. Но это зависит от того, что вам нужно делать.

0

Технически вы можете использовать любой тип приложения, который хотите, но если я собираюсь написать это приложение, я выберу Windows Service Application, потому что вы хотите, чтобы приложение выполнялось многократно автоматическим способом.

и для исполнения, я не думаю, что попав в базу данных для каждой записи это лучшая практика здесь может быть, вы должны искать Bulk Insert.

1
  1. ДА. Вы можете разработать консольное приложение. Выполнение чего-то с помощью Windows Forms или аналогичного (например, приложение C# с формой и одной кнопкой с кодом.) Было бы плохой идеей, так как вам не нужен графический интерфейс и было бы намного сложнее автоматизировать.

    Какие у вас есть варианты?

    • Консоль приложения: Простота разработки. Вы можете запланировать его с помощью Планировщика заданий Windows.
    • Служба Windows: Немного сложнее разработать. Гораздо проще управлять, если он работает или нет.
    • WCF или Restful Web Service: Сложнее разрабатывать, но более открытыми, если это необходимо для развития в будущем.Легче подключаться к другим серверам, так как выполнение может запускаться извне.
  2. NO, потенциально нет, хотя и с плохим кодом вы можете управлять, чтобы создать проблемы в SQL Server.

Мой совет: Если у вас нет много времени/навыков, идти на консоли App. Если это возможно, создайте асинхронный RESTFUL веб-сервис, реализующий GET, чтобы увидеть статус последнего/текущего исполнения, POST для запуска нового выполнения и возврата правильных кодов ответа HTTP.

 Смежные вопросы

  • Нет связанных вопросов^_^