.NET应用程序和工具

8.10:.NET的部署和扩展ASP.NET Core应用程序的方法和工具(课程共9450字,3段代码举例) 总而言之,xn--ASP-ce0i385e.NET Core 应用程序部署与扩展课程涵盖了多种部署方式和扩展方法,帮助开发人员了解如何将应用程序部署到不同的环境并满足特定的需求。通过深入学习和实践这些内容,开发人员可以提高应用程序的部署效率、可靠性和可扩展性,为用户提供更好的使用体验。然而,在实际应用中,我们还需要考虑更多的细节和场景,例如安全性、性能优化、多环境配置等,以确保应用程序的稳定运行。通过不断学习和实践,我们可以不断提升自己在应用程序部署与扩展领域的能力和经验,为构建高质量的应用程序贡献力量。 阅读详情

一.初步认识.NET Core 和 C#7 

  • .NET Core的世界
  1. 可以通过 https://github.com/dotnet/corefx 访问.NET Core的源代码
  2. .NET Core 命令行可以在 https://github.com/dotnet/cli 上使用
  3. 在https://github.com/aspnet 上有许多ASP.NET Core的存储库,其中包括ASP.NET Core MVC、Razor、SignalR、EntityFramework Core等
  4. .NET Core部分特性的总结:

       .NET Core是开源的

       .NET Core使用现代模式

       .NET Core支持在多个平台上开发

       ASP.NET Core可以在Windows和Linux上运行

  • C#的重要性
  1. C#一开始不仅作为一种面向对象的通用编程语言,而且是一种基于组件的编程语言,支持属性、事件、特性(注解)和构造程序集(包括元数据的二进制的文件)。
  2. 随着时间的推移,C#增强了泛型、语言集成查询(LINQ)、lambda表达式、动态特性和更简单的异步编程
  3. C#不仅是面向对象或基于组件的语言,它还包括函数式编程的理念,开发各种应用程序的通用语言和实际应用这些理念
  4. C#6中,编译器的源代码完全可以重写了
  5. C#7再次添加了许多具有函数编程背景的新特性,如本地函数、元祖和模式匹配
  • C#7的新特性
  1. C#6扩展包括static using、基于表达式体的方法和特性、自动实现的属性初始化器、只读自动属性、nameof操作符、空条件运算符、字符串插入、字典初始化器、异常过滤器以及catch中等待
  2. C#7的新特性:数字分隔符、二进制字面值、表达式体的成员、out变量、不拖尾的命名参数、只读结构、in参数、Private Protected、目标类型的default、本地函数、元祖、推断的元祖名、拆解、模式匹配、Throw表达式、异步Main()方法、引用语义
  • GitHub
  1. git命令的完整列表可以在https://git-scm.com/docs上找到

二.NET历史

  • C#1.0 ——一种新语言
  1. C#0是一种全新的编程语言,用于.NET Framework
  2. NET编译语言的编译器生成中间语言(IL)代码。IL代码看起来像面向对象的机器码,使用ildasm.exe可以打开包含.NET代码的DLL或EXE文件来检查IL代码(IL代码也称托管代码)
  3. CLR包含一个即时(JIT)编译器,当程序运行时,JIT编译器会在IL代码中生成本地代码
  4. CLR的其它部分是垃圾收集器(GC)、调试器扩展、线程实用工具
  5. 垃圾收集器负责清理不再引用的托管内存,这个安全机制实用代码访问安全性来验证允许代码做什么
  6. 调试器扩展允许在不同的编程语言之间启动调试会话
  7. 线程实用工具负责在底层平台上创建线程
  • NET3.0 ——Windows Presentation Foundation
  1. Windows Forms包括本地的Windows控件基于像素
  2. WPF基于DirectX,独立绘制每个控件
  3. WPF中的矢量图形允许无缝地调整任何窗体大小
  4. WPF中的模板允许完全自定义外观
  5. System.Windows命名空间下的所有内容都属于WPF,除System.Windows.Forms
  6. WPF的用户界面可以使用XML语法XAML设计
  7. .NET3.0推出之前,使用的ASP.NET Web Services和.NET Remoting用于程序之间的通信
  8. Message Queuing是用于通信的另一个选择
  9. 第三大部分Windows WF 和命名空间System.Workflow
  • C#4.0和.NET4.0 ——dynamic和TPL
  1. C#4.0的主题就是动态集成脚本语言,使其更容易使用COM集成
  2. 任务并行库(Task Parallel Library,TPL)使用Task类和Parallel类抽象出线程,更容易创建并行运行的代码
  • C#5和异步编程
  1. C#5只有两个新的关键字:async和await,大大简化了异步方法的编程
  2. System.AddIn名称空间,它提供了插件模型。过于复杂、缓慢。于是.NET4.5创建一个新的合成框架:Managed Extensibility Framework 和命名空间System.Composition
  3. ASP.NET Web API基于Representational State Transfer(REST)软件架构风格
  • C#6和.NET Core 1.0
  1. Silverlight是一个Web浏览器插集,支持动态内容
  • C#7和.NET Core 2.0

     1.C#7最重要的部分来自函数式编程:模式匹配和元祖

 三.NET术语

一.NET技术

  1. Xamarin提供了Xamarin.IOS和Xamarin.Android库,它们可以为IPhone和Android开发C#应用程序
  2. Xamarin目前基于Mono框架,Mono框架是由Xamarin开发的.NET变体
  3. .NET Core运行库时CoreCLR库,包含集合类的框架、文件系统访问、控制台和XML等都在CoreFX库中

二.NuGet包

  1. NuGet包是一个zip文件,其中包含程序集(或多个程序集)、配置信息和PowerShell脚本

三.名称空间

1. System.Collections:这是集合的根名称空间。之名称空间也包含集合,如System.Collections.Concurrent和System.Collections.Generic

2. System.Data:这是访问数据库的名称空间。System.Data.SqlClient包含SQL Server的类

3. System.Diagnostics:这是诊断信息的根名称空间,如事件记录和跟踪(在System.Diagnostics.Tracting名称空间中)

4. System.Globalization:包含的类用于全球化和本地化应用程序

5. System.IO:这是文件IO的名称空间,其中的类访问文件和目录,包括读取器、写入器和流

  1. System.Net:这是核心网络的名称空间,比如访问DNS服务器,用System.Net.Sockets创建套接字
  2. System.Threading:这是线程和任务的根名称空间。任务在System.Threading.Tasks中定义
  3. 一些新的.NET类使用名称以Microsoft开头而不是使用System开头的名称空间。
  4. Microsoft.EntityFrameworkCore用于新的依赖关系注入框架中的Microsoft.Extensions.DependencyInjection

四.公共语言运行库

1. UWP(Windows通用应用平台)利用Native.NET通过AOT Compiler把IL编译成本地代码与Xamarin.IOS相似

2. CLR(公共语言运行库)的作用

在CLR执行应用程序之前,编写好的源代码(使用C#或其它语言编写的代码)都需要编译。

在.NET中,编译分为两个阶段:

  1. 将源代码编译为Microsoft中间语言(IL)
  2. CLR把IL(托管代码)编译为平台专用的本地代码

IL代码在.NET程序集可用。在运行时,JIT编译器编译IL代码,创建特定于平台的本地代码

新的CLR和CoreCLR包括一个新的JIT编译器RyuJIT

CLR还包括一个带有类型加载器的类型文件,类型加载器负责从程序集中加载类型。类型系统中的安全基础设施验证是否允许使用某些类型系统结构,如继承

CLR的另一个功能就是垃圾收集器。垃圾收集器从托管堆中清除不再引用的内存

CLR还负责线程的处理。在C#中创建托管的线程不一定来自底层操作系统。线程的虚拟化和管理由CLR负责

  • Windows运行库
  1. 从Windows8开始,Windows操作提供了另一种框架:Windows运行库(Windows Runtime)。这个运行库由WUP使用。与.NET Framework不同,这个框架是使用本地代码创建的。当它用于.NET应用程序时,所包含的类型和.NET类似。在语言投射的帮助下,Windows运行库可以用于JavaScript、C++和.NET语言,它看起来编程环境的本地代码。不仅方法因区分大小写而行为不同,方法类型也可以根据所处的位置有不同的名称
  2. Windows运行库提供了一个对象层次结构,它以在Windows开头的名称空间组织。用于UWP上的应用程序。
  1. Windows.ApplicationModel:这个名称空间及其子名称空间(如Windows.ApplicationModel.Contracts)定义了类,用于管理应用程序的生命周期、与其他程序通信
  2. Windows.Data:Windows.Data定义了子名称空间来处理文本、JSON、XML、PDF数据
  3. Windows.Devices:地理位置、智能卡、服务设备点、打印机、扫描仪等设备可以用Windows.Devices子名称空间访问

四.用.NET Core CLI编译

SDK命令

选项和模板 

五.使用VS2017

对应的SDK命令

 

 

深入.NET平台的软件系统分层开发7-8 北大青鸟ACCP6.0深入.NET平台的软件系统分层开发7-8 七章八章课件代码答案 立即下载

相关推荐

R语言实战:5分钟搞定GEO单细胞数据(scRNA-seq)下载与整理(附完整代码)

本文详细介绍了如何使用R语言快速下载和整理GEO单细胞数据(scRNA-seq),提供完整的自动化处理代码。从环境准备、数据获取到文件整理和质量检查,涵盖10X Genomics标准格式及非标准数据的处理技巧,帮助生物信息学研究者高效完成数据预处理工作。

weixin_29054399的博客 600

WPF:插件模型

概念: 插件(add-in、plug-in)是应用程序能够动态发现、加载和使用的单独编译过的组件。 优点: 允许第三方开发人员扩展应用程序的功能。如PS中的插件提供大量图片处理效果; firefox中插件提供了增强Web冲浪及全新功能。插件模型的主要优点是不需要为许多任务(如发现)编写底层代码,主要缺点是非常复杂。 内容: MAF:托管...

weixin_34029949的博客 958

【保研经验】北科自动化到北大工学院

作者:办公室某学长 谢邀。。。作为拖延症晚期患者,希望能在我科开学前写完。 先简单介绍一下我的保研过程,申请了清华叉院&北大叉院大数据&北大信科计算机夏令营,三者都没入营;申请了自所夏令营(自所来宣讲时未交简历,这是重大错误),给了第二批补录但没去;最终九推去了北大工学院。我的这次保研最终成功的经历可以说有一定运气成分,不具有普适性,但在前期准备过程中还是有经验可以分享的。 ...

ruanjianbu的博客 1795

WPF 插件开发(.NET Framework 3.5 System.Addin)

.NET Framework 3.5提供了一个框架,即System.Addin命名空间,通过该命名空间我们可以进行插件开发,用程序集System.AddIn来保存和创建插件。这个框架也称为Managed AddIn Framework(MAF)。 插件还有其他称呼,如add-on或plug-in。 先前研究过SharpDevelop,SharpDevelop...

weixin_30824479的博客 1047

将Python爬取的数据导入钉钉多维表

摘要:本文介绍将Python爬取的数据导入钉钉多维表的完整解决方案。首先通过requests库爬取数据并解析为结构化格式,然后使用钉钉开放平台API对接多维表。关键步骤包括获取app_key、app_secret等凭证,通过OAuth2获取access_token,以及批量写入记录。文章详细说明了参数获取位置、字段类型匹配、权限配置等注意事项,并提供了错误处理建议和性能优化方法。适用于需要将网络数据同步到钉钉多维表的开发场景。

IT深耕十余载,大道之简 2129

PSF(点扩散函数)与去卷积算法消除图像模糊

本文旨在总结图像处理中使用去卷积的传统方法来进行图像去模糊的相关知识。

m0_53607446的博客 6011

启动应用程序出现System.AddIn.dll找不到问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个System.AddIn.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现System.AddIn.dll丢失要怎么解决?

wbcmbfy的博客 840

线结构光三维重建(二):光平面标定与激光轮廓提取的实战优化

本文深入探讨了线结构光三维重建中的光平面标定与激光轮廓提取两大核心环节的实战优化。详细介绍了从棋盘格标定板法到自动化高鲁棒性标定的流程优化,并分享了针对复杂工业场景(如低对比度、高反光表面)的激光轮廓提取组合策略,旨在提升三维重建系统的整体精度与稳定性。

weixin_29057237的博客 326

C# 插件化方案(Add-In)

白话插件框架原理 WPF 插件开发(.NET Framework 3.5 System.Addin)原文:AddIn Enabled Applications 转载于:https://www.cnblogs.com/jeason1997/p/9271610.html

weixin_30360497的博客 958

别再被坑了!手把手教你从官网下载免费正版Notepad++(附最新网盘链接)

本文详细指导如何从Notepad++官网安全下载正版软件,避免山寨版本带来的安全风险。通过识别官网特征、推荐官方下载渠道、揭露山寨网站骗局及验证正版功能,帮助用户高效获取纯净的Notepad++代码编辑器,并分享实用插件和配置优化技巧。

weixin_42527654的博客 562

Deeplabv3+改进1:添加CBAM注意力机制|有效涨点

我们提出卷积块注意力模块(CBAM),这是一种简单而有效的前馈卷积神经网络注意力模块。给定一个中间特征图,我们的模块会依次沿两个独立维度(通道和空间)推断注意力图,然后将注意力图与输入特征图相乘,以实现自适应特征细化。由于 CBAM 是一个轻量级且通用的模块,它可以无缝集成到任何 CNN 架构中,几乎不会增加开销,并且可以与基础 CNN 一起端到端训练。我们通过在 ImageNet-1K、MS COCO 检测和 VOC 2007 检测数据集上进行的大量实验验证了 CBAM。

AIcurator的博客 1691

在.net中创建外接程序

今天在一个项目中添加dll引用时发现了在.net 3.5中新增了一个System.AddIn的名字空间,在msdn上查了一下,这个是一个ms提供的一个外接程序扩展的解决方案,以后用得上的话可以看一下。  下列文字转自MSDN: 外接程序为宿主应用程序提供扩展的功能或服务。.NET Framework 提供了一个编程模型,编程人员可以使用该模型开发外接程序并在外接程序的宿主应用程序中激活它们。...

weixin_33795833的博客 168

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

AI赋能,使用DeepSeek 高效制作PPT实战详解

congge 1万+

.net应用程序和工具

由于新公司对NET 失去了兴趣,Ximian的创始人Miguel de Icaza创办了Xamarin 公司,并将值得关注的.NET 部分带到了他的新公司,开始创建 Android和 ioS可用的.NET项目。添加对程序集的一个引用,以便在自己的代码中使用公共类型和方法的时候,仍可以这样使用程序集(一些程序集必须这样使用)。如果比较.NET Core与.NET 4.8的构建结果,会发现对于.NET Core,生成了一个包含IL代码的DLL,而对于.NET 4.8,生成一个包含IL代码的EXE。

DAJUNGiselle的博客 1565

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

宣布推出适用于 .NET 的 Azure Migrate 应用程序和代码评估工具

我们很高兴地宣布我们将发布一项新工具,它可以帮助您将本地 .NET 应用程序迁移到 Azure。

MicrosoftReactor的博客 1061

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MapWindow GIS:开源的GIS程序 库和工具,适用于基于C#和.NET的应用程序

MapWindow GIS是一个开源软件,支持Windows操作系统,广泛应用于空间数据管理、地图制作、空间分析等任务,适用于研究人员和开发者。下面,我们将从软件的主要功能、支持的系统、软件官网等方面对其进行简单的介绍。的GIS程序 库和工具,主要适用于基于。大家好,今天为大家介绍的软件是。

weixin_43416590的博客 1042

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用标识和访问工具保护ASP.NET应用程序

Microsoft最近发布了 用于Visual Studio 2012的标识和访问工具,该工具允许使用基于声明的标识验证保护ASP.NET、ASP.NET MVC 和WCF服务。它还提供了接受来自于多个标识提供者的用户以及为选择的标识提供者添加必要的配置的能力。\u0026#xD;\n该扩展的工作原理是通过更新web.config文件添加必须的设置,从而启用Windows Identity Fou...

啊啊啊啊2 113

C# 和 .NET在性能优化方面持续演进,提供了多种新特性和工具,显著提升了应用程序的运行时性能、内存效率和启动速度

3. Span<T>、Memory<T> 和 ValueTask 的高级使用介绍:Span<T> 和 Memory<T> 是 .NET Core 2.1 引入的高性能内存操作类型,.NET 9 进一步优化了它们的运行时性能和编译器支持。它通过运行时收集性能数据(如热点路径、分支预测)来优化 JIT 编译,生成更高效的机器码。8. 高性能库和 API介绍:.NET 9 扩展了高性能库(如 System.Numerics、System.IO.Pipelines),提供了更多优化 API,简化高性能代码的编写。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 978

使用ConfuserEx代码混淆工具保护你的.NET应用程序

NET应用如何防止被反编译?这个对于我们.NET开发而言是一个值得关注和重视的问题,防止应用程序被反编译的手段有很多本文我们主要讲讲如何使用ConfuserEx .NET开源免费的代码混淆工具保护你的.NET应用程序。ConfuserEx是一个功能强大且广泛使用的.NET代码混淆工具。它支持多种混淆技术,包括控制流混淆、字符串加密、资源加密等。它具有灵活的配置选项,可以根据不同的需求进行定制。

sdgfafg_25的博客 1111

5个很好用的 Net 分析工具

5个很好用的 Net 分析工具

gdhjgfr的博客 610

Plesk 中的 .NET 应用程序托管

更重要的是,这一切并不需要Windows许可证,而且Hostease的服务器能为你的应用程序提供更加稳定的运行环境,无论是创建待办事项还是与朋友聊天,一切都变得更加顺畅。这样,Hostease服务器加上Plesk的组合就能帮你轻松管理不同版本的ASP.NET Core,确保你的网站始终运行在最佳状态。如果你是Plesk管理员,或者你需要在Hostease服务器上为客户托管.NET网站,而他们需要使用旧版本的ASP.NET,你可以非常轻松地在.NET工具包中添加所需版本。点击.NET Core选项。

web_geek的博客 437

ASP.NET 网站管理工具介绍

有没有感觉对 web.config 的操作很烦呢? 老是手动来编辑 web.config 确实挺麻烦的, 不过自 ASP.NET 2.0 起便有了 ASP.NET 网站管理工具, 这个工具呢,其实就是一个操作 web.config 的 GUI , 您在这个 ASP.NET 网站管理工具中的一些设置 基本上都会反映会 web.config 中, 所以在这里便顺着道介绍一下, 首先,您要...

weixin_30522095的博客 110

.NET Core Runtime 和 .NET Core SDK

.NET Core 包括.NET Core Runtime 和 .NET Core SDK: .NET Core = 应用运行依赖的 .NET Core Runtime .NET Core SDK = 使用.NET Core开发应用.NET Core Runtime 和 SDK+CLI(Software Development Kit/Command Line Interface) 工具 ...

weixin_34277853的博客 1807
上一篇: 程序设计六大原则之开放封闭原则
下一篇: 程序设计六大原则之单一职责原则
Code技术分享
博客等级 码龄7年 3327粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值