分类目录归档:.net

.NET Core 2.0

点击查看原图

  下载 Visual Studio 2017 version 15.3

  下载 .NET Core 2.0

  下载 Visual Studio for Mac

点击查看原图

  微软今天发布了.NET Core 2.0 版本,属于一次非常大的版本迭代。

  .NET Core 2.0 主要包括一些让 .NET Core 更容易使用的改进,并增强其平台能力。亮点如下:

  Runtime

  SDK

继续阅读

发表在 .net | .NET Core 2.0已关闭评论

.NET技术

问题

大家是否想过:

  • .NET究竟包含哪些技术呢?
  • 我所掌握的技术这个子集,在.NET技术大系这个超集里面占地比例是什么呢?
  • 我究竟还没有掌握多少.NET技术呢?
  • 面试的时候会考哪些技术呢?

相信大家也看过Java的技术栈,一个金字塔形状的(我一下子没找回,如果你知道,烦请告诉我),包含了繁多的技术:
点击查看原图

查看大图

这些年来,看过n多.Net架构图/技术栈,搜索了很久,没有找到一个符合我要求的“较为全面”地表述.Net技术大系的图表。相信微软内部有更全面的,但可惜我没有找到。

互联网上来去都是那几个简单的按版本新增分类等10来个点的,譬如这个:

 点击查看原图

或者这个按照.NET版本新增技术的:
点击查看原图

圣殿骑士 在 新加坡架构师面试总结 里面发表过一张.NET架构师面试需要的技术总结图:

点击查看原图
 

查看大图

不过这个总结图面向的是.NET架构师需要掌握的技术,和我需要的不一样。

 

.NET技术栈

最近找工作,面试了多家公司,不同公司有不同的技术要求,我把这些技术,结合我已经掌握的技术,总结了一下.Net相关技术,大约10个大类50个技术点,花了一点时间搞个.NET技术栈概览。

 

从最底层的到最顶层:

  • 操作系统
  • CLI
  • CLR
  • CTS/CLS/CIL
  • .NET Fx
  • CLI 语言
  • DLR
  • DLR 语言
  • Desktop 桌面
  • Web 网络
  • SOA
  • SDKs
  • OWIN
  • IDE 编辑器
  • Platforms 平台
  • Prod...

继续阅读

发表在 .net | .NET技术已关闭评论

windows 7/windows 2008/ tls1.2 / .net

TLS 1.2 and Microsoft.Net

Now lets focus on using TLS 1.2 in .Net world. We need to make sure that
the web sites are served via TLS 1.2 protocol and client apps which are
consuming the same need to support TLS 1.2. .Net is running on top of
operating system and mostly its windows. If host windows supports TLS
1.2 .Net can also support TLS 1.2 as it relies on schannel.dll1
The first task here is to make sure we are using the right tools and technologies.

TLS 1.2 and .Net Framework 4.5

.Net is also versioned. Versions below 4.5*doesn't know how to
communicate via TLS 1.2.In .Net...

继续阅读

发表在 .net | windows 7/windows 2008/ tls1.2 / .net已关闭评论

nuget

下载地址:
命令行: http://nuget.codeplex.com/downloads/get/669083
命令行: http://nuget.org/downloads
图形窗: https://github.com/NuGetPackageExplorer 继续阅读

发表在 .net | nuget已关闭评论

ASP.NET URL

Browser Request 的網址相關的屬性與用法:

網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc
Request.ApplicationPath /
Request.PhysicalPath D:\Projects\Solution\web\News\Press\Content.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath) D:\Projects\Solution\web\News\Press
Request.PhysicalApplicationPath D:\Projects\Solution\web\
System.IO.Path.GetFileName(Request.PhysicalPath) Content.aspx
Request.CurrentExecutionFilePath /News/Press/Content.aspx
Request.FilePath /News/Press/Content.aspx
Request.Path /News/Press/Content.aspx/123
Request.RawUrl /News/Press/Content.aspx/123?id=1
Request.Url.Absol...

继续阅读

发表在 .net | ASP.NET URL已关闭评论

.NET Platform Standard

    .NET Platform Standard 直译过来就是 .NET 平台规范或标准,它的目的就是使 .NET 各个平台之间更加统一和规范 .NET Standard Library 现在有一个对应程序包NETStandard.Library,它的作用是兼容各个 .NET Platform。

 

.NET Platform Standard 列表:

Target Platform Name Alias
.NET Platform Standard netstandard 1.0 1.1 1.2 1.3 1.4 1.5 1.6
.NET Core netcoreapp 1.0
.NET Framework net 4.6.3
4.6.2
4.6.1
4.6
4.5.2
4.5.1
4.5
Universal Windows Platform uap 10.0
Windows win 8.1
8.0
Windows Phone wpa 8.1
Windows Phone Silverlight wp 8.1
8.0
Mono/Xamarin Platforms *
Mono *

 

分别参考:

.NET Platform Standard:https://github.com/dotnet/corefx/blob/maste...

继续阅读

发表在 .net | .NET Platform Standard已关闭评论

C# UDP 大数据分包传输

如果需要使用UDP传输较大数据,例如传输10M的图片,这突破了UDP的设计原则。UDP的设计是基于"datagram",也就是它假设你发送的每个数据包都能包含在单一的包内。并且设定UDP数据包的最大长度受基础网络协议的限制。

点击查看原图

UDP数据包的理论最大长度限制是 65535 bytes,这包含 8 bytes 数据包头和 65527 bytes 数据。但如果基于IPv4网络传输,则还需减去 20 bytes 的IP数据包头。
则单一的UDP数据包可传输的数据最大长度为:

MaxUdpDataLength = 65535 - 8 - 20 = 65507 bytes

这就需要实现UDP包的分包传输和接收组包功能。

 

分包功能

/// <summary>
/// UDP数据包分割器
/// </summary>
public static class UdpPacketSplitter
{
  /// <summary>
  /// 分割UDP数据包
  /// </summary>
  /// <param name="sequence">UDP数据包所持有的序号</param>
  /// <param name="datagram">被分割的UDP数据包</para...

继续阅读

发表在 .net | C# UDP 大数据分包传输已关闭评论

.NET Core dotnet 命令大全

命令目录:

dotnet-new

dotnet-restore

dotnet-run

dotnet-build

dotnet-test

dotnet-pack

dotnet-publish

 

现在来详细讲解。

创建(dotnet new)

首先我们创建一个项目 ,这里我们创建控制台程序。

dotnet new

点击查看原图

 

dotnet 更多命令请参考帮助。

 

还原(dotnet restore 及 dotnet pack)

我们在创建一个 class lib  也就是类库。

dotnet new -t lib

点击查看原图

创建好以后,编写一些自己的代码然后进行打包。

点击查看原图

 

我编写了两个方法,现在来打包。

dotnet restore

dotnet pack

点击查看原图

.NET Core 怎样添加离线引用包呢?现在答案就揭晓了。

打包好以后,我们将applib 添加到 app的 project.json 。

点击查看原图

添加好以后切到app 目录,然后进行还原。

还原使用的命令是:dotnet restore -f E:\dotnet\applib\bin\Debug\

dotnet restore -f 包的路径

点击查看原图

这样我们就能直接在项目里调用applib 里面的方法。

我们在代码里编写对应的调用,然后执行程序。可以看到正确输出class lib 的结果。

点击查看原图

 

运行(dotnet build 及 dotne...

继续阅读

发表在 .net | .NET Core dotnet 命令大全已关闭评论

C#堆栈、队列、递归实现的快速排序

static void Qsort(int[] data, int low, int high)//递归实现
        {
            if (low >= high) return;
            int i, j, pivot;
            i = low;
            j = high;
            pivot = data[low];
            while (i < j)
            {
                while (data[j] > pivo...

继续阅读

发表在 .net | 标签为 , | C#堆栈、队列、递归实现的快速排序已关闭评论

C#集合--Dictionary

字典(dictionary)是一个集合,其中每个元素都是一个键/值对。字典(Dictionaries)是常用于查找和排序的列表。

.NET Framework通过IDictionary接口和IDictionary<TKey,TValue>接口,以及一些常用的子典了定义了子典协议。每个类在以下方面各有不同:

  • 元素是否已经排序
  • 元素是否能通过索引或键来获取
  • 字典类是generic的还是非generic的
  • 当字段较大时,根据键值获取元素速度的快慢

继续阅读

发表在 .net | C#集合--Dictionary已关闭评论