net_netty - CSDN
精华内容
参与话题
  • .NET开发能干什么

    万次阅读 2018-04-02 20:05:00
    .NET平台简介.NET是一个微软的技术平台,致力于敏捷、快速开发和跨平台,可以用于开发C/S结构的软件(WinForm技术),如QQ、财务管理系统等;也可以用于开发B/S结构的网站,如门户网站、OA系统等。...

    .NET平台简介

    .NET是一个微软的技术平台,致力于敏捷、快速开发和跨平台,可以用于开发C/S结构的软件(WinForm技术),如QQ、财务管理系统等;也可以用于开发B/S结构的网站,如门户网站、OA系统等。一个.NET应用是使用.NET Framework类库编写,运行于公共语言运行时Common Language Runtime上的应用程序。.NET Framework组件是.NET应用开发环境的核心,负责程序的执行。

    微软推出.NET平台的重要原因:留住Windows程序员,和Java平台竞争,推销服务器

     

    开发工具与语言

    开发工具:Microsoft Visual Studio .NET 集成开发环境

    开发语言:可以使用C#、F#、Visual Basic等

     

    区分ASP.NET和.NET

    我们最常听到的ASP.NET和.NET,两者有啥关联呢?

    .NET是平台,也可以说是框架。ASP.NET是.NET框架的一部分,针对网站开发;WinForm针对桌面应用程序开发。

     

    展开全文
  • .net和c#的区别

    万次阅读 多人点赞 2018-07-02 21:16:15
    今天和同事闲聊的时候,突然发现了一个非常需要重申的问题。我们经常会问你们平台是用什么开发的呀?很多人会混淆了.net和C#的含义;下面我们来温习一下基础知识。.net的含义:一般指.Net Framework框架,是...

    今天和同事闲聊的时候,突然发现了一个可能大家都以为自己很清楚却容易被忽略和混淆的问题。

    .net是不是就是c#?

    你大脑里的第一个答案是什么呢?

    下面我们来温习一下基础知识。

    .net的含义:

    一般指.Net Framework框架,是Microsoft为开发应用程序而创建的一个具有革命意义的平台

    上图是一个简单的.net框架。

    • .NET Framework是用于Windows的新托管代码编程模型。它强大功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能支持各种业务流程。
    •  .net有2种交互模式,分别是B/S,C/S

    c#的含义:

    运行在.NET(CLR)上的,用于创建应用程序的一种高级编程语言

    1.   可以用C#语言通过Web Forms创建ASP.NET应用程序。
    2.  它是专门为与Microsoft的.NET Framework一起使用而设计的。(.NET Framework是一个功能非常丰富的平台,可开发、部署和执行分布式应用程序)。
    3. 它是一种基于现代面向对象设计方法的语言,在设计它时,Microsoft还吸取了其他类似语言的经验,这些语言是近20年来面向对象规则得到广泛应用后才开发出来的。
    4. 有一个很重要的问题要弄明白:C#就其本身而言只是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。.NET支持的一些特性,C#并不支持。而C#语言支持的另一些特性,.NET却不支持(例如运算符重载)!

    两者之间的联系:

    说了这么多,显而易见,.NET是框架平台,而C#是语言。但是,因为C#语言是和.NET一起使用的,所以如果要使用C#高效地开发应用程序,理解Framework就非常重要。

      

    展开全文
  • NET 5是.NET的未来我们围绕其流行的开源Web开发框架,对微软的最新公告进行了巅峰报道。微软在Build 2019大会上宣布了新的.NET 5(.NET的未来)。 ...
        
    640?wx_fmt=jpeg

    NET 5.NET的未来

    我们围绕其流行的开源Web开发框架,对微软的最新公告进行了巅峰报道。

    微软在Build 2019大会上宣布了新的.NET 5.NET的未来)。 .NET 5将是用于构建在所有平台(WindowsLinux)和设备(IoTMobile)上运行的应用程序的单一统一平台。


    如果您是.NET开发人员,目前支持在.NET框架中开发的企业应用程序,那么从长远来看,您需要了解.NET 5将如何影响您当前的企业应用程序。 .Net 5基于.Net标准,这意味着并非每个.Net框架功能都可以在.Net5中使用。此外,还有一些技术堆栈,如Web表单,WCF和WWF没有移植到.Net 5.我们将看看 关于.Net 5未涵盖的内容的细节以及有哪些替代方案。


    技术堆栈没有进入.NET 5

    ASP.NET Web窗体


    ASP.NET Web Forms不会出现在.NET 5中,微软目前正在推荐向Blazor迁移,这是一个最近被提升为官方的实验性项目。如果你擅长JavaScript,其他选择是Angular,React和Vue SPA框架。


       如果您当前正在使用ASP.NET MVC作为完整堆栈Web应用程序,则可以使用ASP.NET Core MVC或.NET Core 2.0中引入的新Razor页面继续使用相同的堆栈,这可能与ASP类似。 NET Web表单,用于快速构建没有视图和控制器的Web表单应用程序。 但是,如果您正在为企业开发现代Web应用程序,最好考虑单页应用程序,如Blazor,Angular或React,而不是传统的Web应用程序,以提供丰富的客户端功能。


    WCFWindows Communication Foundation


    WCF将要错过.NET 5列车的消息让很多人感到惊讶,包括我在内。关于将WCF带回.NET Core的GitHub已经有很多讨论,但微软决定不这样做,因为他们最初估计将WCF移植到.NET Core是三年。(来源:DotNetRocks播客)

       Microsoft建议使用gRPC作为替代方案,它是一种可在任何环境中运行的现代化,开源,高性能的RPC框架。但是,与WCF不同,gRPC目前无法在IIS中托管,因为Http.Sys的HTTP / 2实现不支持gRPC依赖的HTTP响应尾随标头


    WWF(Windows Workflow Foundation)


    Workflow Foundation没有移植到.NET Core中。每个企业应用程序都将具有一些与其集成的工作流程或BPM工具。如果您在应用程序中使用了WWF,Microsoft建议您查看WF运行时的非官方分支以移植到.NET Core中。


    即将到来的技术堆栈5

    WinformsWPFUWP


    微软正在推出Windows桌面包(winforms,WPF和UWP),以支持仅适用于Windows的桌面应用程序。 我不希望任何人使用winforms进行任何新的开发,但是,这将有助于将传统的


    winforms应用程序移植到.NET5.这并不意味着.NET Core的架构正在发生变化。它仍然是一个跨平台的框架,但是当您添加桌面包时,它的目标是仅在Windows上工作。 但是,将现有Windows桌面应用程序移植到.NETCore中可以提供Core Runtime和API性能改进以及部署灵活性的额外好处。


    640?wx_fmt=png



    什么被取代了


    EF核心 - 实体框架核心正在取代.NET核心框架中的EF 6。
    ASP.NET核心 - ASP.NET被ASP.NET核心取代。 查看迁移指南,将ASP.NET应用程序移植到ASP.NETCore中。


    ASP.NET Core MVC - ASP.NET Core MVC统一ASP.NET MVC和Web API。查看迁移指南,将asp.net mvc app移植到ASP.NETMVC中。


    MSIX - Microsoft的新打包工具,它取代了桌面应用程序的旧MSI包安装程序。

    JsonDocument - 来自System.Text.Json.JsonDocument API的新Json Document库将取代json.net。它比旧的json.net快2-3倍。


    其他重要事项要突出


    最新版本的C#8.0引入了许多新的语言功能,包括Async Stream,Ranges,Nullable Reference Types和Pattern Matching。但是,它们将仅在.NET Core 3.0及更高版本上可用,这意味着它不会进入旧版.NET Framework或.NET Core 2.2,2.1或1.0。它清楚地表明.NET已经死了,.NET Core就是未来。


    如果您计划将.NET应用程序移植到.NETCore中,则必须分析项目中使用的API以查看兼容的内容。 .NET Portability Analyzer是一个有助于分析和确定应用程序在.NET平台上的灵活性的工具。


    640?wx_fmt=png总结640?wx_fmt=png


    作为.NET开发人员,我对.NET的未来及其发展方向感到兴奋。我不再需要为SPA框架学习JavaScript,因为Blazor会这样做。 我不再需要学习Python用于机器学习,因为ML.NET会这样做。我不再需要学习AndroidSwift,因为Xamarin会这样做。 如果您了解C#,那么现在您可以开发一个可以从IoTCloud运行的应用程序。 但是,这种变化将影响许多拥有基于WCFWeb窗体的产品/框架的企业客户。


    640?wx_fmt=jpeg

    长按二维码 ▲

    订阅「架构师小秘圈」公众号

    如有启发,帮我点个在看,谢谢↓

    展开全文
  • .NET框架简介

    万次阅读 多人点赞 2018-04-20 10:44:24
    NET框架,它都包含哪些东西? 2) 程序集是什么,它是如何在CLR(通用语言运行时)中运行的? 3) C#与VB.NET同属于.NET平台,它们之间的根本联系和区别,为何他们之间的程序集能互相调用(如果创建一种新型的面向. ...

    初学.NET肯定会有一系列的疑问,比如(以下为自己的疑问):

      1) 何为. NET框架,它都包含哪些东西?

      2)  程序集是什么,它是如何在CLR(通用语言运行时)中运行的?

      3)  C#与VB.NET同属于.NET平台,它们之间的根本联系和区别,为何他们之间的程序集能互相调用(如果创建一种新型的面向. NET的语言,要遵循什么)?

      想要明白如上问题,就需要弄清楚CIL(通用中间语言)、CLR(通用语言运行时)、CTS(通用类型系统)、CLS(通用语言规范)等等的概念,下面是自己看了一些他人的文章后进行的简单总结。


    首先通俗地理解一下.NET平台、.NET框架(Framework)的概念


      “平台”(这里指软件技术平台,下面都指的是这个)就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。提取一下就是,平台是一个环境。只要符合平台规范的应用都能扔到上面来运行。

      我的通俗理解.NET平台是.NET应用与操作系统之间的一个中介,首先它为.NET应用运行提供了环境,其次它为.NET应用与操作系统之间起到了“解耦”的作用,使得平台上层的应用不依赖与操作系统(的机器指令集)。至于如何解耦,要看它的编译过程,下面会进行解释。


      


      框架就好似某种应用的半成品,是前人根据经验开发的可复用的一组组件,供你选用,然后添血加肉完成你自己的系统。其思想与设计模式有些相似,框架是代码复用,设计模式是设计复用。框架又好似提供的一组规范,它规范应用系统的开发与部署,众所周知的J2EE框架就是定义了13个规范。相类似,NET Framework也提供了很多规范,下面会进行介绍。


      


      粗略地说,一个.NET应用是一个运行于.NET Framework之上的应用程序。或者,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时CLR(通用语言运行时)之上的应用程序。下面开始解决上面提出的问题:


    程序集及其运行


      首先引出两个概念CIL——通用中间语言、CLR——通用语言运行时两个概念(具体概念看百度百科)。

      我们知道,普通的无平台应用(例如:VB应用程序)经过预编译、编译、汇编、链接几个步骤后,最终生成的可执行文件中就已经包含了本地处理器的代码,支持它运行的是操作系统和本地的机器指令集。

      在.NET框架下,高级语言(例C#)经过编译后生成的结果文件被称做程序集,其后缀名是.dll(类库)或.exe(可执行程序,控制台应用程序编译结果)。而程序集并不是二进制机器码,是不能直接运行的,需要经过CLR(通用语言运行时)的即时编译才能生成被操作系统所识别的机器码。

      下面我们用C#和VB.NET分别写两个相同控制台应用程序,都定义一个字符串“hello world”,然后输出:

      C#:


      


      VB.NET:


      


      然后经过编译,分别生成相应的程序集.exe文件,下面我们用vs自带的反编译工具-IL DASM(目录:开始-- >vs2010-- >Windows SDK Tools -- >IL 反汇编程序)分别打开上面生成的程序集。

      C#程序集:


      


      VB.NET程序集:


      


      对比两个程序集文件,可以发现两者的代码几乎完全一致。

      上面用IL DASM打开的文件中的类似汇编的代码即为CIL-通用中间语言。可以看到VB.NET与C#,编译后生成的程序集的格式是相同的;当程序所实现的功能相同时,程序集所包含的CIL代码也是类似的。由此可得下图:


      


      上面提到了程序集(CIL)并不是CPU可以直接执行的本地机器语言。这种语言还需要.NET运行时(CLR)环境的支持,在执行之前,进行一个被称为即时编译的二次编译过程,才能转变成计算机可以识别的指令。


      


      CIL也是一种程序语言,它是比C#低级,比机器码高级的一种中间码语言,类似Java中的.Class文件。从前面截图可知CIL是一种基于堆栈的语言,同时,它提供了class、interface、继承、多态等诸多面向对象的语言特性,因此它又是完全面向对象的语言。如果愿意,甚至可以直接编写CIL代码,并且使用CIL的编译工具IL ASM(IL Assembler,IL汇编程序)来对它进行编译。只不过,和大多数低级语言一样,这种方式会使开发效率会变得很低。

      C#源程序在被编译为程序集以后,就独立于C#,因此程序集可以由其他种类的语言所调用;同时,因为程序集并没有包含本地机器的指令,所以它与具体的机器类型也分隔开了,可以被装有.NET框架的任何机器运行。


    C#与VB.NET的根本联系与区别


      (下文大部分引用一些书籍或博文)

      这里要引入CTS——公共类型系统、CLS——公共语言规范两个概念。

      设想我们如何开发一套类似C#或VB.NET的新的语言(编译后生成CIL代码,可以在.NET环境下运行)?

      要开发的新语言相当于CIL的高级语言版本,所以实际上要做什么并不是由新语言决定的,而是由CIL来决定的。因此,需要一套CIL的定义、规则或标准。这套规则定义了我们的语言可以做什么,不可以做什么,具有哪些特性。这套规则就称作CTS(Common Type System,公共类型系统)。任何满足了这套规则的高级语言就可以称为面向.NET框架的语言。C#和VB.NET不过是微软自己开发的一套符合了CTS的语言,实际上还有很多的组织或团体,也开发出了这样的语言,比如Delphi.Net、FORTRAN等。

      CTS规定了可以在语言中定义的数据类型、访问级别比如Private、Public、Family(C#中为Protected)、Assembly(C#中为internal)、Family and assembly(C#中没有提供实现)、Family or assembly(C#中为protected internal)。

      CTS还定义了一些约束,例如,所有类型都隐式地继承自System.Object类型,所有类型都只能继承自一个基类。从CTS的名称和公共类型系统可以看出,不仅C#语言要满足这些约束,所有面向.NET的语言都需要满足这些约束

      上面提到了,C#并没有提供Family and assembly的实现,C#中也没有全局方法(Global Method)。换言之,C#只实现了CTS 的一部分功能。也就是说,CTS规范了语言能够实现的所有能力,但是符合CTS规范的具体语言实现不一定要实现CTS规范所定义的全部功能。

      显然,由于CIL是.NET运行时所能理解的语言,因此它实现了CTS的全部功能。虽然它是一种低级语言,但是实际上,它所具有的功能更加完整。C#语言和CIL的关系,可以用如下表示:

      


      

      既然已经理解了CTS是一套语言的规则定义,就可以开发一套语言来符合CTS了。假设这个语言叫做B#,它所实现的CTS非常有限,仅实现了其中很少的一部分功能,它与CTS和C#语言的关系可能如下:


      


      那么现在就有一个问题:由C#编写的程序集,能够引用由B#编写的程序集吗?答案显然是不能。虽然C#和B#同属于CTS旗下,但是它们并没有共通之处。因此,虽然单独的B#或C#程序可以完美地在.NET框架下运行,但是它们之间却无法相互引用。

      如果B#项目期望其他语言类型的项目能够对它进行引用,就需要B#中公开的类型和功能满足C#语言的特性,即它们需要有共通之处。B#中不公开的部分(private、internal、protected)是不受影响的,可以使用独有的语言特性,因为这些不公开的部分本来就不允许外部进行访问。因此,如果B#想要被C#所理解和引用,它公开的部分就要满足C#的一些规范,此时,它与CTS和C#语言的关系就会变成如下:


      


      如果世界上仅有C#和N#两种语言就好办了,把它们共同的语言特性提取出来,然后要求所有公开的类型都满足这些语言特性,这样C#和N#程序集就可以相互引用了。可问题是:语言类型有上百种之多,并且.NET的设计目标是实现一个开放的平台,不仅现有的语言经过简单修改就可以运行在.NET框架上,后续开发的新语言也可以,而新语言此时并不存在,如何提取出它的语言特性?因此又需要一套规范和标准来定义一些常见的、大多数语言都共有的语言特性。

      对于未来的新语言,只要它公开的部分能够满足这些规范,就能够被其他语言的程序集所使用。这个规范就叫做CLS (Common Language Specification,公共语言规范)。很明显,CLS是CTS的一个子集。那么VB.NET、C#、B#的关系就可表达为:


      


      如果利用C#开发的一个程序集的公开部分仅采用了CLS中的特性,那么这个程序集就叫做CLS兼容程序集(CLScompliant assembly)。显然,对于上面提到的FCL框架类库,其中的类型都符合CLS,仅有极个别类型的成员不符合CLS,这就保证了所有面向.NET的语言都可以使用框架类库中的类型。

      满足CLS就是要求语言特性要一致,那么什么叫做语言特性?这里给出几个具体的语言特性:是否区分大小写,标识符的命名规则如何,可以使用的基本类型有哪些,构造函数的调用方式(是否会调用基类构造函数),支持的访问修饰符等。

      那么我们如何检验程序集是否符合CLS呢?.NET为我们提供了一个特性CLSCompliant,便于在编译时检查程序集是否符合CLS。我们来看下面一个例子:


      


      可以注意到,在CLSTest类的前面为程序集加上了一个CLSCompliant特性,表明这个程序集是CLS兼容的。但是,有三处并不满足这个要求,因此编译器给出了警告信息。这三处是:

      •不能以大小写来区分成员,因此字段name和方法Name()不符合CLS。

      •方法的返回类型和参数类型必须是CLS兼容的,uint和sbyte类型并非CLS兼容,因此GetValue()和SetValue()方法不符合CLS。

      •标识符的命名不能以下划线“_”开头,因此属性_MyProperty不符合CLS。

      还会注意到,编译器给出的只是警告信息,而非错误信息,因此可以无视编译器的警告,不过这个程序集只能由其他C#语言编写的程序集所使用。


    总结


             我们对.NET框架的第一感觉就是,.NET框架所提供的庞大类库及编写代码所采用的C#语言等,实际上远不止这些。还包含许多的内容,例如CLI、CIL、CTS、CLS、CLR、JIT、BCL、FCL等,这些内容在《.NET之美》这本书中都进行了深入浅出的讲解,对初学者很实用。如果想真正的理解.NET,仅仅会编码是远远不够得,上面这些东西才是根本

    展开全文
  • 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、...
  • MobileNetV1 & MobileNetV2 简介

    万次阅读 多人点赞 2020-10-09 11:14:02
    一、参数数量和理论计算量 1、定义 参数数量(params):关系到模型大小,单位通常为M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍 理论计算量(FLOPs): ...是 floating point operations 的...
  • DenseNet算法详解

    万次阅读 多人点赞 2018-05-31 08:21:57
    论文:Densely Connected Convolutional Networks ...代码的github链接:https://github.com/liuzhuang13/DenseNet文章详解: 这篇文章是CVPR2017的oral,非常厉害。文章提出的DenseNet(Dense Convolution
  • .net core 和 .net framework之间的关系

    千次阅读 2018-12-21 16:34:00
    .net core 和.net framework 是.net standard 在不同平台下的具体实现。   .net core的api种类 从.net framework 去除了以下内容 1. 和GUI相关的WForm和WPF, 它们绑定了windows 系统 2.Asp.Net WebForms 和...
  • cloud-studio创建C工程

    2019-11-12 11:06:33
    cloud-studio创建C工程 cloud-studio是腾讯的云端IDE,目前提供的ubuntu开发环境是16.04 https://studio.dev.tencent.com 创建C项目 访问... 选择"新建工作空间" ......
  • log4net使用详解

    万次阅读 多人点赞 2017-04-25 08:56:36
    说明:本程序演示如何利用log4net记录程序日志信息。log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle...
  • 论文精读——CenterNet :Objects as Points

    万次阅读 多人点赞 2020-05-09 14:22:09
    论文题目:Objects as Points ... 发布时间:2019.4.16 机构:UT Austin,UC Berkeley ...代码:https://github.com/xingyizhou/CenterNet Abstract 目标检测识别往往在图像上将目标以轴对称的框形式框出。大...
  • DenseNet 简介

    万次阅读 多人点赞 2017-08-29 15:52:07
    2.介绍DenseNet 1.1 DNN回顾 如下图所示是一个基本DNN结构,通过forward传播和backword传播来训练一个模型 包含input层,L个隐藏层和一个output 隐层使用的sigmoid激活函数 一般的优化方法有如下几种 GD:对所有...
  • 出现net::ERR_CONNECTION_REFUSED问题,前端优化

    万次阅读 热门讨论 2019-04-19 15:59:12
    在一次测试中,请求后台数据报net::ERR_CONNECTION_REFUSED的错误。我的这次具体失败的原因是因为请求地址错误的原因。能导致这个问题的原因有很多种,也有可能是网络原因等等….产生这个错误最归根揭底的原因就是...
  • DenseNet详解

    万次阅读 多人点赞 2019-10-21 14:53:31
    其它机器学习、深度学习算法的全面系统讲解可以...作为CVPR2017年的Best Paper, DenseNet脱离了加深网络层数(ResNet)和加宽网络结构(Inception)来提升网络性能的定式思维,从特征的角度考虑,通过特征重用和旁路(Byp...
  • net.sf.json jar包 最全版

    万次下载 热门讨论 2020-07-30 23:32:27
    JAVA中使用JSON进行数据传递,用于java生成json字符串,和java解析json字符串(如果要使程序可以运行的话必须引入JSON-lib包,而JSON-lib包是一个beans,collections,maps,java arrays和XML和JSON互相转换的包)
  • 论文阅读: RetinaNet

    万次阅读 多人点赞 2020-03-19 09:45:17
    Introduction 此篇论文获得了ICCV最佳学生论文奖,指导人是FBAI的He Kainming大神: 众所周知,detector主要分为以下两大门派: - one stage系 two stage系 代表性算法 YOLOv1、SSD、YOLOv2、... ...
  • net start mysql 启动MySQL服务报错 发生系统错误 5 解决方法
  • (绝对详细)CenterNet训练自己的数据(pytorch0.4.1)

    万次阅读 多人点赞 2019-10-16 14:35:11
    我的任务是在行人头肩数据上训练并测试centernet网络,先证明一下我是真的训练了哈,这是用centernet检测的一张结果(训练了10个epochs的结果,大家放心使用,网络功能还是很强大的): 我参考的这篇博客,对我自己...
  • 在DOS窗口、gitbush以及一些可以使用的命令行工具的界面上,输入:net stop mysql、net start mysql时,总是提示:服务名无效。 出现提示如下: 原因是:因为net start +服务名,启动的是win下注册的服务。...
  • GoogLeNet系列解读

    万次阅读 多人点赞 2016-11-14 19:18:40
    本文介绍的是著名的网络结构GoogLeNet及其延伸版本,目的是试图领会其中的思想而不是单纯关注结构。GoogLeNet Incepetion V1 Motivation Architectural Details GoogLeNet Conclusion GoogLeNet Inception V2 ...
1 2 3 4 5 ... 20
收藏数 1,085,763
精华内容 434,305
关键字:

net