'控制台类型'适合我的解决方案的应用程序?(c#)

本文关键字:应用程序 我的 控制台 类型 解决方案 | 更新日期: 2023-09-27 18:14:48

我刚开始作为开发专业的学生实习。

我需要在c#中编写一个程序,将读取CSV productfeed,然后解析它,映射它并插入或更新到SQL Server数据库。

该程序将在Windows VPS上运行,必须每天执行,因为CSV也将每天更新。我必须把这个过程自动化。

所以来回答我的问题:

1。我可以使用控制台应用程序吗?(因为我不需要任何GUI)

2。将这样的程序嵌套循环插入/更新崩溃或过于沉重的数据库,因为CSV可以包含+100k的记录?

任何正确方向的指导都是非常感谢的

'控制台类型'适合我的解决方案的应用程序?(c#)

  1. 。您确实可以开发控制台应用程序。使用Windows窗体或类似的东西(即带有窗体和带有代码的单个按钮的c#应用程序)将是一个坏主意,因为你不需要GUI,并且很难实现自动化。

    你有什么选择?

    • 控制台应用程序:易于开发。你可以使用Windows任务调度程序来调度它。
    • Windows Service:有点难开发。如果它正在运行或不运行,则更容易控制。
    • WCF或Restful Web Service:更难开发,但如果需要在未来发展,则更开放。更容易与其他服务器互连,因为执行可以从外部触发。
  2. 没有,可能没有,尽管有坏的代码,你可以设法在SQL Server中创建问题

我的建议:如果你没有太多的时间/技能,去控制台应用程序。如果你可以,创建一个异步RESTFUL web服务实现GET查看上次/当前执行的状态,POST触发一个新的执行,并返回正确的HTTP响应代码。

1。我可以使用控制台应用程序吗?(因为我不需要任何GUI)是的,你可以控制台应用程序和任务计划每天运行这个程序。你也可以写Windows Service——在这种情况下,你的程序将在后台运行。

2。这样一个嵌套插入/更新循环的程序是否会崩溃,或者在数据库上太重,因为CSV可以包含+100k条记录?

100K+行对MS SQL来说没什么。但当然你需要写正确的代码。我将解析它,然后在数据库中插入多线程。但这取决于你需要做什么

从技术上讲,你可以使用任何你想要的应用程序类型,但是如果我要写这个应用程序,我会选择Windows服务应用程序,因为你希望应用程序以自动的方式重复运行。

和性能,我不认为命中数据库的每条记录这里的最佳实践可能是你应该寻找批量插入