最新文章
|
知识管理交流
→『 技术文档交流 』
本版文数:7515 今日文数:2474
|
至于任务调度这个基础功能,重要性不言而喻,大多数业务系统都会用到,世面上有很多成熟的三方库比如Quartz,Hangfire,Coravel这里我们不讨论三方的库如何使用而是从0开始自己制作一个简易的任务调度,如果只是到分钟级别的粒度基本够用技术栈用到了:BackgroundService和NCrontab库第一步我们...
|
前言目前.NET体系下常见的PDF类库有Aspose、QuestPDF、Spire、iTextSharp等,有一说一都挺好用的,我个人特别喜欢QuestPDF它基于C#FluentAPI提供全面的布局引擎;但是这些库要么属于商业库价格不菲(能理解收费),但是年费太贵了。要么是有条件限制开源的,如Spire开源版本有各种...
|
前言今天我们来讲讲如何使用.NET开源(MITLicense)的轻量、灵活、高性能、跨平台的分布式网络爬虫框架DotnetSpider来快速实现网页数据抓取功能。注意:为了自身安全请在国家法律允许范围内开发网页爬虫功能。网页数据抓取需求本文我们以抓取博客园10天推荐排行榜第一页的文章标题、文章简介和文章地址为示例,并把...
|
许多人认为成为一名网络开发人员是一件轻而易举的事,想象着我们只需在家里舒适地敲击键盘,手边放着一杯热气腾腾的咖啡或茶。然而,他们没有看到电脑屏幕内部复杂且往往混乱的世界。几乎每个开发人员都会遇到类似的挑战:最坏的情况、噩梦之类的;那些感觉就像残酷笑话的时刻——有时,逃避这一切的想法更容易。如果您是一位经验丰富的Web开...
|
一、WebSocket与实时消息推送WebSocket是一种网络通信协议,它在单个TCP连接上进行全双工通信,允许服务器主动向客户端发送消息。这种特性使得WebSocket成为实现实时消息推送的理想选择。实时消息推送是指服务器能够实时地将最新信息推送给客户端,无需客户端定期轮询,从而大大降低了网络延迟和资源消耗。Web...
|
我不是很理解,为什么越来越多的项目打着高性能的旗号,迷信般的使用响应式编程框架,然后把代码搞的乱七八糟。响应式编程真的那么香么?还是“天下苦响应式编程久已”,在迫害我们的祖国花朵?在我看来,响应式编程至少犯了三宗罪:1.易造成复杂;2.调试困难;3.性能迷雾。鉴于此,我希望开发同学们在选择编程范式的时候,能擦亮自己的眼...
|
PostgreSQL并不是一个简单的关系型数据库,而是一个数据管理的抽象框架,具有吞噬整个数据库世界的力量。而这也是正在发生的事情——“一切皆用Postgres”已经不再是少数精英团队的前沿探索,而是成为了一种进入主流视野的最佳实践。OLAP领域迎来踢馆者在2016年的一次数据库沙龙里,我提出了一个观点:现在Postg...
|
Notepad--是国人开发的一款用于取代Notepad++的文本编辑器,一般用于纯文本或程序代码临时修改等,比Windows系统内置的文本编辑器强大很多。Notepad--内置了简单的宏操作功能,可以实现部分自动化处理文本,对于文本处理带来了很大的方便,但Notepad--未提供直接的宏命令编辑功能,导致实际使用中不...
|
在这篇文章中,我们将分享21个带有代码片段的HTML技巧,可以提高您的编码技能。现在,让我们直接开始吧。01、创建联系链接使用HTML创建可点击的电子邮件、电话和短信链接:<!--Emaillink--><ahref="mailto:name@example.com">SendEmail</a><!...
|
前言今天我们来讲讲如何使用.NET开源(MITLicense)的轻量、灵活、高性能、跨平台的分布式网络爬虫框架DotnetSpider来快速实现网页数据抓取功能。“注意:为了自身安全请在国家法律允许范围内开发网页爬虫功能。网页数据抓取需求本文我们以抓取博客园10天推荐排行榜第一页的文章标题、文章简介和文章地址为示例,并...
|
在C#编程中,异步编程是一个重要的概念,特别是在处理I/O操作、网络请求或是需要长时间运行的任务时。C#5.0引入了async和await关键字,使得异步编程变得更加简单和直观。在这些关键字背后,是Task和Task<TResult>类在起作用,它们代表了异步操作。一、C#异步Task的概念和特点Task是.NETFr...
|
前言今天给大家分享2款开源、美观的WinFormUI控件库,希望可以帮助到有需要的同学。WinForm介绍WinForm是一个传统的桌面应用程序框架,它基于Windows操作系统的原生控件和窗体。通过简单易用的API,开发者可以快速构建基于窗体的应用程序,并且可以利用多种控件和事件来实现应用程序的功能和交互。更多Win...
|
|
萤火虫是一款简单、易架设的WireGuard服务端软件,支持Linuxx86、ARM等CPU架构环境,可广泛用于异地组网、远程办公、内网穿透等场景。优势:与默认的WireGuard相比,它提供简单、易用的web管理后台;支持不同系统的WireGuard客户端接入,包括windows、macOS、iOS、Linux等;服...
|
作者:HelloBug.转自:blog.csdn.net/LLLLL__/article/details/89505619C#中$符号是从C#6.0版本开始推出的语法糖,主要是对String.format()的简化,当然format也不是没有价值,本文将介绍C#中$符及String.format的一些通用用法。一:$符...
|
如何改变grid布局的某一个单元格的宽度?方法一:使用grid-column属性如果你想要改变一个单元格跨越的列数,或者改变它在网格中的位置,你可以使用grid-column属性。.item在上面的例子中,.item将跨越两列,这实际上会改变它的宽度,因为它现在占据了更多的网格空间。方法二:改变网格容器的grid-te...
|
有时候,我们需要在网页判断用户是否处与非活跃状态,如果用户长时间没有在页面上进行任何操作,我们则判定该用户是非活跃的。在javascript中我们可以通过监听某些鼠标或键盘相关的事件来判定用户是否在活跃中。案例演示在线演示-使用JS判断用户是否处于活跃状态实现代码案例演示了如何获取用户活跃状态,时间阈值定为5秒,超出该...
|
如今,软件开发中最大的趋势之一,是PostgreSQL正在成为事实上的数据库标准。已经有一些博客阐述了如何做到万物皆用PostgreSQL,但还没有多少文章能解释这一现象背后的原因。(更重要的是,为什么这件事很重要)——所以我写下了这篇文章。本文作者为AjayKulkarni,TimescaleDBCEO,原文发表于T...
|
在Windows桌面应用程序开发中,WPF(WindowsPresentationFoundation)和WinForm是两种常见的用户界面框架。它们各自具有独特的特点和优势,但同时也存在一些显著的差异。以下将详细探讨WPF和WinForm之间的主要区别。一、基础与技术WPF(WindowsPresentationFo...
|
最近刚好看到一段视频,讲述关于IP伪造的内容。视频中并没有具体描述如何进行的IP伪造。借此机会,小黑屋来唠唠伪造IP的几种常见方式。方式1:X-Forwarded-For这个是最为认知的IP伪造方法,早年的CTF题目也经常涉及,然而现在知道的人太多,CTF都不屑于出这类题目。X-Forwarded-For诞生的原因比较...
|
在C#编程中,序列化是一个重要的概念,它允许我们将对象的状态转换为可以存储或传输的格式。序列化在多种场景下都非常有用,比如将数据保存到文件、通过网络发送数据,或者在不同的系统或服务之间共享数据。在C#中,我们有两种主要的序列化方式:二进制序列化和XML序列化。本文将深入探讨这两种序列化方式,并介绍如何使用它们。一、序列...
|
摘要注册表(Registry,繁体中文版Windows操作系统称之为登录档案)是MicrosoftWindows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows3.0推出OLE技术的时候,注册表就已经出现。随后推出的WindowsNT是第一个从系统级别广泛使用注册表的操作系统。但是,从Micr...
|
对于PHP,我们可以说的一件事是它是持久更新的语言。与许多历史悠久的编程语言一样,它经常受到希望看到更新候选语言开发者的“诽谤”,但它也保留了不少支持者和最佳实践者,这让人想起C++发明者BjarneStroustrup的明智之言:世界上只有两种编程语言:人们抱怨的语言和没人使用的语言。PHP最初创建于1993年,旨在...
|