使用 Docker 开发本地软件是否可行? 我知道的开发本地软件的技术有:Qt,Electron,微软的WPF,Winform,Java 的 Swing,JavaFX.... 这些我大概都了解过,也用过 Electron,winform 开发过一两款自己的小工具。 我个人的技术栈主要是 Java,在学完 Docker后,我就在想,能否用 Docker来开发本地工具? 例如,在Docker里安装数据库,Java等环境,然后开发自己的应用(例如 JavaWeb 项目)并上传镜像; 而用户只需下载Docker + 镜像(这个我认为可以用一些脚本来运行,例如Windows的.bat文件,降低用户安装难度),然后即可运行镜像;而不用客户早就安装数据库,Java等环境 这样的方式是否可行?有相关的案例吗?(我试着搜索了下,不知道用什么关键字好,没搜到类似的案例) 我试过 Electron,然后本地应用的话,不太能让客户去安装数据库,因此用的是 SQLite,然后操作数据库起来远远没有 Java 操作数据库方便(Java有很多成熟的 orm 框架) 也试过 winform,感觉有点难用... winform 里的很多控件是写死了的,不能自定义功能
Winform编程中,有一个场景是: 1、窗体启动时创建一个test.db数据库文件; 2、窗体关闭时将这个新建的test.db文件删除。 但是在处理时出现该文件被其他进程占用。 代码很简单,两个事件,使用的是using Microsoft.Data.Sqlite;库 Load事件 private void Form1_Load(object sender, EventArgs e) { string source = "Data Source= " + "E:\\test.db"; using(SqliteConnection sc = new(source)) { sc.Open(); sc.Close(); Trace.WriteLine(sc.State); } } FormClosed事件 private void Form1_FormClosed(object sender, FormClosedEventArgs e) { File.Delete("E:\\test.db"); } 看似将数据库连接关闭了,因为 Trace.WriteLine(sc.State);这句在输出窗口显示 为 Closed. 但在执行File.Delete("E:\test.db"); 出现如下图示: "错误信息" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/e4540bfc434e3a97e57534f7c8e1b29b.png) "错误信息1" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/97e5860661822f6d4706980cb4adfdce.png) 应该还是这个窗体进程在占用着这个test.db文件 但我不知道还有什么方法是可以释放的,包括把sc = null;这种设置也是不行的。 求助SF大佬,给予指导