我的 Java/C# web 后端开发技术选择

article/2025/10/10 0:18:05

简单介绍一下,我的 Java/C# web 后端开发技术选择。与网上一般人所用,大不相同。

先来一个表格,以下是我常用的Java/C# web 后端开发技术:

我常用的Java/C# web 后端开发技术
技术分类Java webC# web
数据库bonecp,commons-dbcp,commons-dbutilsNpgsql
网页模板引擎freemarker,velocityNVelocity
应用日志commons-logging,slf4j,logbacklog4net,NLog
配置参数commons-configuration
代码简洁化commons-lang3,commons-io,guava
定时任务quartz
文件上传commons-fileupload
前端、后端交互, json 数据json-libNewtonsoft.Json
辅助工具commons-beanutils,commons-codec,commons-collections,commons-pool,commons-vfs2,ezmorph,httpclient,httpcore,jsch,jxl,opencsv,dom4j,rhino ,unboundid-ldapsdk,oro,poiZXing.Net,FluentFTP,SSH.NET,LumenWorksCsvReader,NPOI,Microsoft Report Viewer Control,NPOI,SharpZipLib
单元测试junitxUnit.net
公司自写框架/组件velocitywebcommon_db,common_uitls

数据库层,在 Java 7 引入 try-with-resources 语法之前,代码编写比较繁琐,需要手工 close db-Connection, PreparedStatement, ResultSet。所以一般使用 Apache 的 commons-io,commons-dbutils 来简化此处代码。而在 Java 7 之后,有了 try-with-resources 语法,这种事情就容易处理了。

按理,Java/C# 代码,均应及时关闭数据库的各种资源。但在 C# 编程界,没有像 Java 那样特别强调这方面。猜测可能是因为,Java 编程习惯性地搭配 Oracle 数据库,它需要及时关闭数据库的各种资源,包括 Connection, PreparedStatement, Resul,否则容易出问题。而 C# 习惯性地搭配 MS SQL Server, 不及时关闭数据库的各种资源,好像也不碍事。

因此,此处有一个“软件技术的选择,影响编程思路与习惯”这种老问题。

网页模板引擎方面,我习惯于不使用 Java 自带的 JSP/JSTL, 也不使用 ASP.NET 自带的 ASP/Razor,而习惯于使用 Apache velocity、NVelocity 这种第三方模板引擎。主要原因,在于第三方引擎,可以兼容多个 web 容器(Tomcat/IIS)的不同版本,可以持续使用很多年。且第三方模板,技术足够简单,容易上手。

当然了,使用这种第三方模板,需要自己写代码,维护一个全局的 static Map, 其 key 为相对网址,Map 为对应的 Java/C# Request Dispatcher 子类。

 

上表中,Java 编程的配置参数、代码简洁化、定时任务、文件上传等所用第三方 jar 包,在 C# 编程中一般无对应的第三方组件。原因是因为 C# 在自身标准库的功能,简单且功能足够。

定时任务方面,Java web 编程习惯于在固定时间运行定时任务,比如 quartz。而 C# Web 编程常见的做法则是将代码隔离出来,使用 Windows Service 来运行。换句话说,Java web 习惯于将后台线程代码与 web 后端逻辑放在同单个 .war 包中,而 C# web 则习惯于拆分,使用 Windows Service(服务), 或 Windows OS task(操作系统定时任务) 来运行单个 exe 模块。

.Net framework 自带 json 解析类,而 Java JRE/JDK 则缺少此类功能,需要使用第三方组件包。

因前端网页编程,我一般使用 jqGrid, 基于 json 数据格式,进行 web 前后端数据传输查询翻页表格数据。所以,表格中的 Java web 与 C# web ,均使用了 json 组件。

单元测试方面,Java 编程有使用 JUnit 的习惯,而 C# 编程这方面的习惯较少,一般都是人工在界面上测试。这方面的差异,大概是 Java 编程界,更喜欢折腾、更经常重构代码,频繁大批量更改代码,导致 JUnit 必不可少。

基于 transaction-per-request 的 web 编程模式,是很常见的。我很奇怪,Java web 与 Asp.Net 均未提供对应的功能。没办法,只能自己写一些简单的框架/组件,来达到这个功能。

Velocityweb 是我自己的写的一个 Java 框架,早期版本放在 VelocityWeb document 。后续更新未上传到 sourceforge.net 网站上去。基于 transaction-per-request 的 web 编程模式,结合 velocity 的一些常用功能。

欢迎转载,转载请注明出处:  https://blog.csdn.net/jacklondon, https://www.zheguisoft.com/staff_blogs/jacklondon_chen

 


http://chatgpt.dhexx.cn/article/U41SpqUA.shtml

相关文章

php后端技术 有哪些,web后端开发技术有哪些 ?

如果你想要从事web后端开发的工作,那么你就需要了解web后端技术有哪些?并且要学习掌握这些web后端开发技术。下面我们就给大家介绍有哪些web后端技术。 web后端开发技术: 1、脚本语言基础。主流的后端脚本语言有php、 java 、 python、C、C等…

web后端开发php,web后端开发主要做什么?

应用程序或web服务可以分为两大部分:前端和后端。从这些名字可以猜出他们的角色。前端是你可以“看到”的部分。它是让你与应用程序或服务交互的部分。颜色、动画、布局以及所有其他增加你使用应用或网站体验的酷东西就是前端。前端通常称为用户界面(UI)。后端是你看不到的部分…

Web后端基础知识

文章目录 前言一、web基础知识1.web开发使用java的优势2.web前后端分离有什么好处?谈一下各自的职责。3.POJO和Java Bean?4.Tomcat容器(应用服务器)谈一下?5.Servlet谈一下?6.Servlet的生命周期谈一下?7.Servlet的三大…

web后端(javaWeb)

文章目录 1.javaweb简介2.XML3.Tomcat服务器4.Servlet15.1协议互联网通信模型5.2HTTP6.servlet27.JDBC8.JSP9.JSP中的文件下载和上传10.请求重定向和请求转发的区别11.Cookie 和 Session12.谷歌验证码的使用13.Filter过滤器14.ThreadLocal 的使用15.JSON和Ajax请求15.1JSON 在 …

GIMP基本功能和教程!

以剪贴板为内容创建一个工作布:SHIFT CTRL V 或者:File -> Create ->From Clipboard 取消选择:SHIFT CTRL A 或者:Select -> None 反选(选补集):CTRL I 或者&#xff…

GIMP教程 4 图层

图层可以说是现代制图软件的精髓,也是最根本地区别于纸质制图的地方。 GIMP呼出图层窗口的方法也很简单 点击【窗口----可停靠对话框----图层】 或者直接使用快捷键 ctrlL 便可呼出图层窗口 剩下的,就跟所有其它制图软件一样了。 还有问题可联系作者…

GIMP教程 5 选择

选择的意义在于限制作用范围,即,使所有操作只对选择部分有效, 不会“误伤”未选择部分。 gimp提供了多种选择工具,参见工具箱前几个按钮, 或者 【工具----选择工具】中按钮列表。 使用左键拖出选择范围&#xff0c…

教程:GIMP中怎样移动选区

教程:GIMP中怎样移动选区 更新历史 20190421: 首次发布 在GIMP中,一个常用的操作就是:选中某图层中的一块区域,然后对其进行移动。以下为教程。 注:完成以下教程时,使用的软件版本为 GIMP 2.10…

教程:GIMP中改变画布大小

教程:GIMP中改变画布大小 更新历史 20190428: 首次发布 在GIMP中,一个常用的操作就是:需要在不做缩放的情况下对图像进行扩展(或裁剪),即将画布增大(或缩小)。以下为教程。 注:完成以下教程时,…

gimp 抠图_gimp软件如何实现抠图?

抠图伴随着很多从事图片处理工作的朋友,能够实现抠图效果的软件有很多,但是能够很快速的达到效果的软件我觉得还是gimp最简单,下面我们可以看看GIMP软件使用前景选择工具实现抠图效果的详细步骤技巧。 GIMP软件实现抠图效果的详细步骤技巧&am…

使用GIMP抠图

文章目录 使用GIMP进行抠图,然后再使用一些工具例如python库PIL进行paste,这样就可以实现数据增广。 下面详细说一下步骤: 1、在GIMP软件中打开图片; 如图, 2、比如把上图中的银行卡给抠下来,可以长按 ctr…

GIMP 教程:如何在 GIMP 中创建曲线文本

当你在 GIMP 中制作一个徽章、海报或其它任何作品时,你需要扭曲或弯曲一些文本。多功能的GIMP工具提供了一些创建弯曲文本的方法。取决于你将如何使用它和你想给予文本的弧度,有一些适合不同情况的方法。 在本篇教程中,我将向你展示我最喜欢…

GIMP教程 3 扭曲变换工具 (瘦脸 瘦腿)

这个功能在ps里叫液化,在gimp里叫扭曲变换。 将鼠标切换为扭曲变换工具的方法有以下几种: 方法1: 点击【窗口----新建工具箱】,快捷键是 ctrlB ,呼出工具箱菜单 点击 扭曲变换,鼠标就切换成扭曲变换工具…

【GIMP教程探索系列】GIMP将照片修改为符合要求的证件照吗,修改尺寸与像素,压缩图像大小

【GIMP教程探索系列】GIMP将照片修改为符合要求的证件照吗,修改尺寸与像素,压缩图像大小 对于图片的处理,笔者推荐使用开源软件GIMP,由于其强大的功能可以几乎实现所有的高级图片的操作处理,以及其开源的特性&#xf…

GIMP教程 1 图片剪裁

为啥要写这篇教程呢?肯定有人会这样问。 photoshop个人版一年都大几千rmb,这个价格对轻度使用者实在不友好, 而用盗版可能牵扯法律问题,所以还是转向开源免费的GIMP吧。 笔者在网上搜了GIMP的教程,中文教程寥寥无几…

GIMP教程 2 文字工具

首先切换到文字工具,然后利用文字工具进行文字输入。 将鼠标切换为文字工具的方法有以下几种: 方法1: 点击【窗口----新建工具箱】,快捷键是 ctrlB ,呼出工具箱菜单 点击 文字工具,就是那个大写的A&…

GIMP 基本教程(1)

GIMP 是开源PhotoShop的替代品, 目前 Photoshop 只支持 Windows、Mac 平台,不便于其他平台的用户使用。而 GIMP 就不一样了,GIMP 是一个跨平台的图像编辑器,可用于 GNU/Linux、macOS、Windows 等更多操作系统,还可利用…

gimp教程:gimp界面介绍

GIMP(跨平台图像处理程序)是一个开发源代码的光栅与图像编辑的先进功能,关于GIMP的界面,初学者都了解吗?下面是小编整理的关于gimp教程中gimp界面介绍,快来分享吧! gimp界面介绍:gimp图像窗口 Gimp图像窗口是打开图形图像文件时…

GIMP 基本教程

版本:GIMP 2.10.10 OS:Win10 图片素材来源:https://pixabay.com,www.pexels.com,https://wpclipart.com/,遵循免费共享协议 本文主要记录笔者使用GIMP的心得,有些具体操作内容会省略,读者可以酌…

腾讯移动Web整体解决方案--Spirit

移动Web开发是一块新的领域,给Web带来更多机会的同时,也带来了更多的挑战。为了让开发者在移动Web的道路上走得更加顺畅,开发更加高效,Spirit(勇气号)由此而生。 Spirit 官网:http://alloyteam.…