猿创征文|.NET最佳实践开发工具推荐

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🐬个人主页:会敲键盘的肘子
🐰系列专栏:.Net实用方法总结
🦀专栏简介:博主针对.Net开发和C站问答过程中遇到的问题进行总结,形成本专栏,希望可以帮助到您解决问题。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。


在这里插入图片描述

🌈写在前面:

互联网不仅仅是一件事,它是一个事物的集合——由众多使用相同数字语言的通信网络组成。 — James H. Clark


👉本文关键字:.Net、开发工具

📖 前言

互联网已经吸引了数百万用户,就像一个多样化的数字服务、移动和可扩展性的星系。这个最吸引人的世界都掌握在网络开发人员手中。他们手中有创造并构建将数字世界和现实世界联系起来的魔力。为了向用户提供高质量的产品和内容,开发人员有必要采用合适的工具。

艺术家们寻找灵感、工具和精髓想象力来创作他们的杰作的方式,对于那些寻求最合适的工具来执行工作的网络开发人员来说也是如此。

然而,选择一个合适的工具的过程是相当具有挑战性的,因为软件行业正在随着各种软件、应用程序和框架而浮动。

因此,有必要仔细研究最好的工具,看看哪种工具最适合您的项目。在这篇博文中,我们将探讨每个开发人员在定制.NET应用程序开发中必须使用的前10个.NET开发工具。

📑 开发工具:Microsoft Visual Studio

在这里插入图片描述

我们要讨论的第一个工具是Visual Studio,它是.NET框架最先进的开发工具之一。它用于创建计算机软件,以及网站、web应用程序、web服务和移动应用程序。

VisualStudio与大约36种编程语言协作,它使代码编辑器和调试器能够为任何可能的编程语言提供服务。

Visual Studio最突出的功能:

  • VS的快速代码导航很容易找到类型并识别它们的参考代码。
  • VS使用自定义代码分析和调试对错误进行分类并提高代码质量。
  • 先进的IntelliSense构成了一种有助于代码导航的预测算法。
  • VS的实时单元测试允许自动管理受影响的单元测试。

高效

使用 64 位 IDE 缩放以处理任何大小和复杂性的项目。 用新的 Razor 编辑器进行编码,可以跨文件进行重构。 诊断与异步操作和自动分析器的可视化效果相关的问题。

现代

使用.NET MAUI 开发跨平台移动版和桌面版应用。 使用 Blazor 生成采用 C# 的响应式 Web UI。 在 Linux 环境中生成、调试、测试 .NET 和 C++ 应用程序。 跨 .NET 和 C++ 应用使用热重载功能。 在 Web 设计器视图中编辑正在运行的 ASP.NET 页。

创新

由 AI 提供支持的代码完成。 使用共享编码会话实时协同工作。 克隆存储库、导航工作项以及暂存单行以进行提交。 自动设置可部署到 Azure 的 CI/CD 工作流。

⭐ 位于代码编辑器内

输入操作量减少,代码产量更多

IntelliCode 是一组功能强大的自动代码完成工具,它可以了解代码上下文:变量名称、函数和正在编写的代码类型。 这使 IntelliCode 能够一次完成整行,从而帮助你更准确、更自信地进行编码。

对代码的深入见解

CodeLens 可帮助你轻松找到重要见解,例如已进行哪些更改、这些更改产生的影响、以及是否已对方法运行单元测试。 提供重要信息(例如引用、作者、测试和提交历史记录),可指导你做出最明智的工作决策。

在这里插入图片描述

⭐ 支持你做好交付准备

在成为问题之前及时制止

集成调试是每个 Visual Studio 产品的核心部分。 可以分步执行代码并查看存储在变量中的值、设置对变量的监视以查看值更改的时间、检查代码的执行路径,以及需要在后台查看的任何内容。

在这里插入图片描述

即时影响

分析正在测试的代码数量,并查看已针对效率优化的测试套件中的即时结果。了解所做的每个更改的影响,并让高级功能在你键入代码时对其进行测试。 借助 WSL 集成,可以在 Windows 和 Linux 上进行测试,以确保应用在所有位置均可运行。

在这里插入图片描述

⭐ 无缝云集成

Azure 部署

部署到云变得更加简单。我们提供通用应用程序类型和本地仿真器所需的所有模板。你只需在 Visual Studio 中即可预配依赖项,如 Azure SQL 数据库和 Azure 存储帐户。你甚至可以使用直接连接到应用程序的远程调试器快速诊断任何问题。

在这里插入图片描述

集成的版本控制

Visual Studio 2022 内置支持 Git 版本控制来克隆、创建和打开自己的存储库。 Git 工具窗口包含提交和推送代码更改、管理分支和解决合并冲突所需的一切内容。如果你有 GitHub 帐户,则可以直接在 Visual Studio 内管理这些存储库。

在这里插入图片描述

📑 代码分析工具:NDepend

在这里插入图片描述

NDepend是作为VisualStudio插件的最佳免费代码分析之一。它会立即、准确地检查源代码,从而呈现全面、定义明确和禁止的度量。

此外,NDepend还提供了强大的功能,可以分析您的代码并检查省份以及指标。此外,它定制分析的能力对项目来说是最好的。

让我们来看看NDepend的好处:

  • NDepend提高了代码的可维护性。
  • 开发人员使用此工具增强了对成本和风险的控制。
  • 它与Visual Studio工具精确集成。
  • 该工具提高了开发团队的生产力。
  • 使用此工具,团队开发更好的代码。
  • CQlinq定制代码分析的最佳帮助。
⭐ NDepend和SRP

避免类型过大
避免太多方法的类型
避免太多字段的类型
避免过大和过于复杂的方法
避免使用参数过多的方法
避免使用过多局部变量的方法

⭐ OCP 开闭原则

很多人认为开闭原则是所有原则中最难理解和应用的。所谓的开闭原则,指的是你的类型应该对拓展开放,但是对修改关闭。换句话说,对子类的增加一定不能导致父类的任何修改。NDEpend中的“基类不应该使用派生”规则通过指示基类永远不要提及其子类来帮助我们防止这种情况。

⭐ LSP 里氏替换原则

NDepend恰好有一条规则可以警告你这种情况,这条规则被相当恰当地称为“实现抛出NotImplementedException的方法。”

你会发现,在使用TDD时,此异常最有用。

⭐ ISP 接口隔离原则

接口隔离原则指的是:

不应强迫客户端依赖于不使用的接口。

为了遵循此原理,你应该使接口尽可能的小和精细。换句话说,你应该避免接口太大,这是我们现在要讨论的NDepend规则的确切名称。

⭐ DIP 依赖反转原则

所谓的依赖反转原则指的是:抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。

这条NDepend规则通过鼓励你将包含抽象的命名空间与包含具体内容的命名空间(即所述抽象的实现)分开来帮助你实现此目的。

📑 LINQPad

在这里插入图片描述

LINQPad适用于那些不喜欢质疑老式SQL语言的人,它是使用现代编程语言LINQ或SQL查询数据库的最佳选择之一。

LINQPad让开发人员有机会裁决代码行、测试片段和应用程序。

除此之外,对开发人员最有利的方面包括:

  • 可选自动完成
  • 输出格式
  • 集成调试
⭐ 高级转储

正如你们中的许多人已经知道的那样,在控制台上打印东西你不必调用Console.WriteLine(somthing),但你可以使用somthing.Dump();

当然,这个简单的技巧会让你的代码更容易阅读!

好的,如果你有太多的 Dump 调用并且你不知道哪个操作打印哪个日志怎么办?幸运的是,Dump方法接受一个字符串作为 Title:该文本将显示在输出面板中。

⭐ 转储容器

转储容器是您的日志的某种接收器。实例化DumpContainer对象后,您可以执行一些操作,例如AppendContent在日志末尾附加一些内容、ClearContent清除内容(显然!)以及Dump在结果面板中显示容器的内容。

举个例子:我们想要遍历一个项目列表并使用一个 Container 来显示项目本身,并使用另一个 Container 来列出当我们对每个项目执行一些操作时会发生什么。

⭐ 从输入中读取文本

向我们的脚本提供输入的能力非常有用,但经常被忽视。

为此,您可以依赖Util.ReadLineLINQPad 中已包含的方法:

运行应用程序时,您会在窗口底部看到一个黑框,允许您编写(或粘贴)一些文本。然后将该文本分配给myContent变量。

⭐ 粘贴为转义字符串

这是我最喜欢的功能之一:很多时候我必须转义包含引号的文本,从其他地方复制以将其分配给string变量;我过去常常浪费时间手动转义这些值(嗯,使用仍然比这个慢的其他工具)。

⭐ xUnit 测试支持

您可以用来玩弄您不知道的类或方法的另一个不错的功能是 xUnit 测试支持。

通过单击Query > Add XUnit Test Support,您可以将 xUnit 添加到您的查询中并编写(并运行,显然)单元测试。

📑 ReSharper

在这里插入图片描述

ReSharper已经有十多年历史了,但软件市场对该工具的需求仍然很高,以帮助.Net工具的开发人员进行编码。这些工具在开发人员中的流行是因为不断更新和开发最新功能。

这个工具最好的部分是它是对VisualStudio的增强,这意味着它为开发人员提供了一个全新的功能部分。

它被认为是Visual Studio的扩展,ReShaper以其独特的代码分析技能向前迈进了一步,当它检测到一些代码气味和代码泄漏时,它会立即纠正代码。

ReSharper.NET开发工具,其中包括非常重要的代码设计,.NET框架的开发人员可以从Visual Studio课程设计中获得这些设计。它可以在整个设置中轻松重构。

⭐ Resharper安装后的改变

VisualStudio的启动速度

VS启动变慢了,大约比之前会慢5-10s,所以,还是机械硬盘的同学赶紧换一块SSD吧;

你的任务管理器里面VisualStudio的内存开销变大了,所以,机器内存不足8GB的赶紧再加一根4GB的内存条吧;

安装后,Resharper会用他自己的英文智能提示

替换掉了VisualStudio的智能提示。

快捷键

使用VisualStudio的快捷键还是使用 Resharper的快捷键呢?我是使用Resharper的快捷键。

菜单和窗口的改变

Visual Studio菜单栏出现Resharper选项,包含了所有的命令(除了仅在上下文中可用的命令)。特定命令的工具窗口。所有工具窗口可用Resharper->Windows菜单调用。

简单上手

你可以简单地这样体验一下:Ctrl+Alt+Insert,回车,就可以在当前项目中添加一个类,还记得以前你是怎么做的吗?在解决方案资源管理器中选中一个项目,然后右键,在长长的弹出菜单中选择:添加——类,如果你的电脑够慢的话,我猜可能要在3秒钟之后才会弹出一个对话框来问你文件名。

📑 NuGet

在这里插入图片描述

NuGet让Microsoft建立了一种共享代码的机制,该机制定义了.NET的包,这些包是制作、促进和扩展的。

开发人员利用NuGet包来共享代码,这对于社区、企业、企业和工作组都是非常谨慎的。他们还可以使用包作为最简单的技术,将自己的代码用于项目中。

Nuget是 ASP .NET Gallery 的一员。NuGet 是免费、开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库。

当需要分享开发的工具或是库,需要建立一个Nuget package,然后把这个package放到Nuget的站点。如果想要使用别人已经开发好的工具或是库,只需要从站点获得这个package,并且安装到自己的Visual Studio项目或是解决方案里。

NuGet能更方便地把一些dll和文件(如jquery)添加到项目中,而不需要从文件中复制拷贝。

📑 NUnit

在这里插入图片描述

NUnit是一个开源框架,用于设计和运行各种Microsoft.NET编程语言的测试。该工具可用于连续运行的测试以及同时运行的众多测试。

这个.NET开发工具还提供了快速的测试结果,它不需要人为地澄清测试结果。除此之外,该工具可以可靠且毫不费力地修复bug。

⭐ NUnit的基本用法

和其他xNUnit框架不同的是,NUnit框架使用Attribute(如前面代码中的[Test])来描述测试用例的,也就是说我们只要掌握了 Attribute的用法,也就基本学会如何使用NUnit了。VSTS所集成的单元测试也支持类似NUnit的Attributes,下表对比了 NUnit和VSTS的标记:

usageNUnit attributesVSTS attributes
标识测试类TestFixtureTestClass
标识测试用例(TestCase)TestTestMethod
标识测试类初始化函数TestFixtureSetupClassInitialize
标识测试类资源释放函数TestFixtureTearDownClassCleanup
标识测试用例初始化函数SetupTestInitialize
标识测试用例资源释放函数TearDownTestCleanUp
标识测试用例说明N/ADescription
标识忽略该测试用例IgnoreIgnore
标识该用例所期望抛出的异常ExpectedExceptionExpectedException
标识测试用例是否需要显式执行Explicit?
标识测试用例的分类Category?

📑 SQL Multi Script

在这里插入图片描述

创建SQL多脚本是为了加快DBA和数据库开发人员的数据库性能,SQL多脚本允许在多个SQL Server上快速轻松地完成多个脚本。

SQL Multi Script只需单击一次即可针对复杂的SQL Server执行各种脚本。此工具允许.NET开发人员在多个SQL服务器上执行多个脚本,并通过减少所需的步骤来节省.NET开发人员的大量时间。

此外,它还可以在结合了快速编辑功能的有效界面内对数据库进行清晰的查询。

SQL多脚本只需单击一次即可针对多个SQL Server执行多个脚本。

SQL多脚本的优点:

  • 只需单击一次即可在多台服务器上部署多个脚本
  • 并行查询数据库
  • 通过汇总结果节省时间,便于分析
  • 使用直观的界面快速编辑查询

📑 Stackify Prefix

在这里插入图片描述

Stackify Prefix是可用于Java和.NET开发的轻量级桌面分析器之一。尽管Prefix工具目前仅在Windows上运行,但从长远来看,您仍然可以找到支持其他操作系统的计划。

Stackify前缀用于.NET和.NETCore应用程序的概要文件,这些应用程序利用性能数据进行回收。

例如,开发人员获得Stackify Prefix的支持,以跟踪应用程序中任何程序的执行。此外,您还可以跟踪SQL查询、HTTP请求、日志等。

可以使用 Stackify Prefix 的最佳方法是查看应用程序日志并将正确的日志附加程序(log4net、NLog 或 Serilog)添加到您的项目中。

📑 Microsoft Web应用程序库

在这里插入图片描述

该工具是一个免费的软件包管理工具,可以轻松接收Microsoft Web平台的修改和新部分,包括:

.Net Framework
IIS
Visual Web Developer
SQL Server Express

此外,该系统还为.Net开发人员提供了现代化、新的更新和每个部分的最新模型。

Web PI执行,这很容易建立和运行最成功的免费Web应用程序,用于博客、内容管理和内置的Windows Web应用程序库。

📑 Windows 软件包管理系统:Chocolatey

在这里插入图片描述

最后一个是Chocolatey,它是Windows的免费软件包工具之一。Chocolatey支持设计软件包并使用市场上熟悉的工具进行部署。

该软件管理解决方案与广泛的Windows操作系统和云环境(如Azure和Amazon AWS)一起运行。

此外,Chocolatey是由NuGet和PowerShell技术授权的,它是微软的一个产品,NuGet是一个为将代码绑定到“包”中的持久性而开发的框架

Chocolatey 是 windows 下一款命令行包管理软件 ,简单说这就是 Windows 的 apt-get。习惯 Linux 操作方式并非常想用它操纵 Windows 的敬请折腾。Chocolatey 这套包管理系统目前已经包含了近 500 多款常用软件。

安装很简单,打开命令行界面,贴入下面一行回车:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('http://bit.ly/psChocInstall'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

用法也简单:

查询程序是否在数据库中:clist <程序名>
安装程序:cinst <程序名>

📙 结语

使用正确的方法,您可以轻松找到合适的.NET开发人员,上面列出的工具将是创建一些令人惊叹的.NET应用程序开发项目的最佳资源。


⭐写在结尾:

文章中出现的任何错误请大家批评指出,一定及时修改。

希望写在这里的小伙伴能给个三连支持

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 51
    评论
以下是一个简单的示例代码,展示了一个基本的征文投稿平台的前端界面和一些关键功能。这只是一个示例,你可以根据自己的需求进行修改和扩展。 HTML: ```html <!DOCTYPE html> <html> <head> <title>征文投稿平台</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1>征文投稿平台</h1> <form action="submit.php" method="post" enctype="multipart/form-data"> <label for="name">姓名:</label> <input type="text" id="name" name="name" required><br><br> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required><br><br> <label for="title">文章标题:</label> <input type="text" id="title" name="title" required><br><br> <label for="abstract">摘要:</label> <textarea id="abstract" name="abstract" required></textarea><br><br> <label for="keywords">关键词:</label> <input type="text" id="keywords" name="keywords" required><br><br> <label for="file">上传文件:</label> <input type="file" id="file" name="file"><br><br> <input type="submit" value="提交"> </form> </body> </html> ``` CSS (style.css): ```css body { font-family: Arial, sans-serif; margin: 20px; } h1 { text-align: center; } form { width: 400px; margin: 0 auto; } label { display: inline-block; width: 100px; } input[type="text"], input[type="email"], textarea { width: 250px; padding: 5px; } input[type="submit"] { margin-left: 100px; padding: 10px 20px; background-color: #4CAF50; color: white; border: none; cursor: pointer; } ``` PHP (submit.php): ```php <?php // 获取表单提交的数据 $name = $_POST['name']; $email = $_POST['email']; $title = $_POST['title']; $abstract = $_POST['abstract']; $keywords = $_POST['keywords']; $file = $_FILES['file']; // 处理文件上传 $uploadDir = 'uploads/'; $uploadFile = $uploadDir . basename($file['name']); if (move_uploaded_file($file['tmp_name'], $uploadFile)) { echo "文件已上传成功!"; } else { echo "文件上传失败!"; } // 将数据保存到数据库或其他处理逻辑 // ... ?> ``` 这个示例代码包括一个HTML表单,其中包含姓名、邮箱、文章标题、摘要、关键词和文件上传字段。当用户提交表单时,数据将通过POST方法发送到submit.php文件进行处理。在submit.php文件中,你可以根据需要处理表单数据和文件上传,然后将数据保存到数据库或其他地方。 请注意,这只是一个基本示例,你可能需要根据实际需求进行修改和扩展。还需要添加服务器端的验证和安全性措施,以及进一步的后端处理逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 51
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会敲键盘的肘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值