欢迎光临
我们一直在努力

从零开始搭建一个DotNetCore项目

luodf阅读(98)

一、开发环境的搭建

在建立一个.net core 3.1 的项目之前,你需要将vs 升级到vs 2019 或者安装一个.net core 3.1的sdk。

二、建立一个.net core的项目

三、项目的部署

面向对象编程(OOP)

luodf阅读(150)

一、面向对象编程的思路

1、确定对象。

2、把对象关联起来。

二、类与类之间的关系

1、继承、泛化

2、组合

3、聚合

4、关联

5、依赖

但要用XX的时候,可以把对象从方法里面传递进去从而建立关联。

三、继承

表示 子类是什么,是一种强关系。

四、封装

类与类之间只通过暴露出来的方法进行交互,更加安全、稳定;只要暴露出来的接口不变就可以保持程序的稳定。

五、多态

运行时的多态

1、抽象方法

2、接口

3、虚方法

编译时的多态

1、方法的重载

2、运算符的重载

六、抽象类与接口

1、抽象类

约束作用:继承了它就得实现里面的抽象方法

代码复用的作用

语义上面:代表是什么

2、约束作用

实现了接口就要实现里面的方法

C#特性(attribute)

luodf阅读(131)

特性是什么?

特性的本质是一个类直接或者间接的继承于Attribute这个类,这个类中同样可以有字段、属性、构造方法、方法等。

如何使用特性?

当我们使用特性的时候,我们必须借助第三方通过反射的方式来使用特性。

C#反射(Reflection)

luodf阅读(119)

1、反射是什么?

2、反射有什么用?

3、反射的原理?

4、使用反射的步骤

5、反射的应用场景

1、反射是什么?

反射是.netframework提供的一组帮助类。常常用于反射的类assembly程序集类、Type类型、 Activator类等。

2、反射有什么用?

通过反射机制,我们可以在程序运行的过程中动态的创建对象,调用方法;读取程序的特性、属性等。反射是框架的设计的灵魂,在ORM框架、MVC框架、Aop中都有反射的存在运用。

3、反射的原理

反射这么强大,那么在.netframework中反射的原理是什么呢?

1).net程序的编译过程

在了解反射的原理之前,我们需要先了解.net程序的编译的过程。如下图

2)什么是元数据?

3)元数据与反射的关系

未完待续…

泛型2

luodf阅读(138)

泛型的作用

没有泛型多个数据类型需要去写多个方法去进行处理

泛型组成

泛型是由尖括号和占位符组成的

泛型的原理

泛型不是语法糖,而是框架升级支持的。第一次编译的时候将类型参数编译成中间语言中的占位符。第二次编译时,将占位符换成了实际上的类型。

泛型的分类

1、泛型方法

当一个方法需要处理多个数据类型的时候使用

2、泛型类

当一个类需要处理多个数据类型的时候使用

3、泛型接口

当一个接口需要处理多个数据类型的时候使用

4、泛型委托

当一个委托需要处理多个数据类型的时候使用

泛型的应用的场景

泛型的约束

1、基类约束

这样可以读取基类的一些字段

2、接口约束

这样可以读取接口的一些方法

3、引用约束 class

这样可以返回null值

4、值类型约束

5、无参数构造函数约束

这样就可以返回new的对象

return new T();

.net core 是什么?

luodf阅读(238)

 1、 .NET Core

       1、 .是一个跨平台的软件通用开发框架:.NET Core是一个可以用来构建现代的、可伸缩和高性能的跨平台软件应用程序的通用开发框架,可用于为Windows、Linux和MacOS构建软件应用程序。

       2、可构建几乎所有的软件程序: 与其他软件框架不同,.NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、游戏和物联网应用程序。

       3、支持基于多种开源语言的开发:与其他框架不同,.NET Core并不局限于单一的编程语言,它支持C#、VB.NET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。

       4、提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于Visual Studio 2019和Visual Studio Code 这些最先进和最现代的开发工具,使得.NET Core成为开发人员最高效的平台之一。

      注: 微软最近宣布了.NET 5,这是.NET Core的未来。将来,.NET Core将改名为.NET,下一个版本的.NET Core将是.NET 5.0。

2、.Net Core 的最新版本

      .NET Core的当前版本为3.0.0,并且在2019年5月6日发布了第5个预览版。关键特征/产品:通过Visual Studio 2019支持ASP.NET Core 3.0、EF Core3.0、UWP、Windows窗体、WPF。

3、.Net Core 的特点

        .NET Core的主要特性包括免费开源、跨平台、现代、灵活、轻量级、快速、友好、可共享,是为未来的软件开发而设计构建的。

    1) .NET Core是现代的

     1)与一些较旧的框架不同,.NET Core旨在解决当今的现代需求,包括移动友好、构建一次在任何地方运行、可伸缩和高性能。

     2).NET Core旨在构建针对各种设备的应用程序,包括物联网和游戏机。

     3).NET Core在C# 8的帮助下支持现代语言结构,如面向对象和模块化编程、泛型、集合、lambdas、语言集成查询(LINQ)和异步编程,这使开发人员更加高效。

   2) .NET Core是快速的

.NET Core 3.0 是快速的。与.NET Framework和.NET Core 2.2及以前的版本相比,.NET Core 3.0的速度很快。.NET Core比其他服务器端框架(如Java Servlet和Node.js)快得多。

What Is .NET Core

根据TechEmpowers发布的一份报告,.NET Core比任何其他框架都要快得多。 TechEmpower基准测试通过对多个Web应用程序框架做如下比较:数据库的单表查询,多表查询,文件访问,数据更新,明文和JSON序列化等任务进行比较。

3) .NET Core是轻量级的

.NET Core是轻量级的。.NET Core可以包含在您的应用程序中,也可以安装在并行用户、机器范围内或服务器上。.NET Core可以部署在Docker容器中。

4) .NET Core是友好的

.NET Core通过.NET Standard与.NET Framework,Xamarin和Mono兼容。 .NET Core还支持使用各种流行的Web框架和库,如React,Angular和JavaScript。 TypeScript是.NET Core和Visual Studio生态系统的关键组件之一。

我们可以使用.NET Core构建哪些类型的应用程序?

.NET Core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括Web,桌面,移动,云,游戏,物联网等。

What Is .NET Core

.NET Core更适合跨平台需求。.NET Core应用程序支持在Windows,Linux和macOS上运行。Linux和macOS上也都支持Microsoft流行的开源代码编辑器Visual Studio Code。VS Code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如Sublime,Emacs和VI)都支持.NET Core。

1) Web应用

ASP.NET Core是.NET Core生态系统的核心组件。ASP.NET Core是一个用于构建网页的框架。ASP.NET Core基于MVC架构,并提供用于构建Web的通用库。开始使用ASP.NET Core

Razor是一个使用C#和TypeScript构建动态网页的新框架。Razor是一种改变游戏规则的技术,它允许C#开发人员用C#构建Web应用程序。

2) 移动开发

移动开发是.NET Core的关键产品。Xamarin是一套使用C#构建跨平台移动应用程序的工具和库。Xamarin允许开发人员在共享的.NET代码库上为IOS、Android、Windows和MacOS构建本地应用程序。

3) 桌面应用程序

.NET Core提供各种框架和工具来构建桌面应用程序。Windows窗体、WPF、UWP和Xamarin是构建桌面应用程序的四个主要框架。.NET Core还支持这些框架之间的互操作性。

Windows窗体是一种构建Windows桌面应用程序的技术。Windows窗体是.NET Framework的首批组件之一。

WPF(Windows Presentation Foundation)是一种较新的构建Windows桌面应用程序的技术。WPF是作为.NET Framework版本的一部分发布的

了解有关wpf的更多信息这里.

UWP是一种较新的技术,是在Windows 8之后发布的。如今,UWP已经成熟。UWP使用XAML作为表示层(UI)和C#作为后端编程。但是,貌似微软已经宣布了他的死亡。

4) 微服务和容器

微服务是一种新的设计模式,它允许开发人员构建软件服务的小模块,这些模块可以使用定义良好的契约相互通信。微服务使开发、测试和部署应用程序的独立部分更加容易。一旦部署完毕,每个微服务都可以根据需要独立地进行缩放。.NET Core支持微服务体系结构,它允许跨平台服务与.NET Core一起工作,包括使用.NET Framework、Java、Ruby或其他开发的服务。

容器是今天的越野车。.NET Core的模块化、轻量级和灵活性使得将.NET Core应用程序部署到容器中变得更加容易。容器把一个应用程序的所有的配置文件和依赖关系,包含在一个单独的、小型的和独立的软件部署单元中。容器可以部署在任何平台、云、Linux和Windows上。

.NET Core与Docker和Azure Kubernetes服务都很好地协作。

5) 云应用程序

云应用程序现在越来越受欢迎。Azure支持各种云应用程序。

.NET Core和C#应用程序可以通过Visual Studio 2019部署在Azure上。

6) 物联网

物联网应用正在增长。.NET Core支持通过UWP框架为运行Windows 10 IoT Core的物联网设备进行物联网开发。UWP可用于构建在由Raspberry Pi,MinnowBoard MAX,DragonBoard 410c等提供支持的物联网上运行的应用程序。

7) 机器学习

机器学习是软件开发人员日益增长的领域。

参考微软官方文档

8) 游戏

Unity是最受欢迎的游戏开发框架之一。C#和UWP用于构建移动,桌面,控制台,电视,VR,AR和Web游戏。

.NET Core 3.0中的新增的功能有哪些?

最新版本的.NET Core 3.0刚刚发布。C#8和Windows桌面是这个版本的两个主要新增部分。

C#8是C#语言的最新版本。C#8是.NET Core的一部分。C#8增加了新功能,包括

Windows桌面是.NET Core 3.0的新增功能,允许开发人员使用Windows窗体,WPF和UWP构建Windows桌面应用程序。

以下是.NET Core 3.0中的其他功能和增强功能列表,

  • Windows桌面的MSIX部署
  • MSIX是一种新的Windows应用程序包格式。它可用于将.NET Core 3.0桌面应用程序部署到Windows 10。
  • 快速内置JSON支持
  • IEEE浮点改进
  • .NET平台依赖内在函数
  • 依赖于框架的可执行文件支持
  • 构建副本依赖项
  • 装配卸载
  • Windows Native Interop
  • Linux上的TLS 1.3和OpenSSL 1.1.1
  • 改进的密码学
  • 适用于Linux的SerialPort
  • ARM64 Linux支持
  • GPIO支持Raspberry Pi

C#中的加密解密

luodf阅读(258)

一、MD5加密算法

我想这是大家都常听过的算法,可能也用的比较多。那么什么是MD5算法呢?MD5全称是message-digest algorithm 5,简单的说就是单向的加密,即是说无法根据密文推导出明文。

MD5主要用途:

1、对一段信息生成信息摘要,该摘要对该信息具有唯一性,可以作为数字签名。

2、用于验证文件的有效性(是否有丢失或损坏的数据),

3、对用户密码的加密

4、在哈希函数中计算散列值

二、RSA加密算法

在谈RSA加密算法之前,我们需要先了解下两个专业名词,对称加密和非对称加密。

对称加密即:含有一个称为密钥的东西,在消息发送前使用密钥对消息进行加密,在对方收到消息之后,使用相同的密钥进行解密

非对称加密即:加密和解密使用不同的密钥的一类加密算法。这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密),相反,使用了密钥B加密数据得到的密文,只有密钥A可以解密。这两个密钥分别称为私钥和公钥,顾名思义,私钥就是你个人保留,不能公开的密钥,而公钥则是公开给加解密操作的另一方的。根据不同用途,对数据进行加密所使用的密钥也不相同(有时用公钥加密,私钥解密;有时相反用私钥加密,公钥解密)。非对称加密的代表算法是RSA算法。下面通过示例演示使用RSA加密、解密.


三、DES加密

DES加密:使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算.

测试

luodf阅读(169)

C#中lamba表达式

luodf阅读(258)

Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。

C#委托和事件

luodf阅读(344)

委托是一种特殊的类,和普通类不同的是委托是对一类方法的抽象。

因此只能在类内部定义内部类(包括委托、结构和枚举)而不能在方法中定义

大前端WP主题 更专业 更方便

联系我们联系我们