百度地圖和高德地圖座標系的互相轉換 四種Sandcastle方法生成c#.net幫助類幫助文檔 文檔API生成神器SandCastle使用心得 ASP.NET Core

百度地圖和高德地圖座標系的互相轉換

 

GPS、谷歌、百度、高德座標相互轉換

1、在進行地圖開發過程當中,咱們通常能接觸到如下三種類型的地圖座標系:

1.WGS-84原始座標系,通常用國際GPS紀錄儀記錄下來的經緯度,經過GPS定位拿到的原始經緯度,Google和高德地圖定位的的經緯度(國外)都是基於WGS-84座標系的;可是在國內是不容許直接用WGS84座標系標註的,必須通過加密後才能使用;html

2.GCJ-02座標系,又名「火星座標系」,是我國國測局首創的座標體系,由WGS-84加密而成,在國內,必須至少使用GCJ-02座標系,或者使用在GCJ-02加密後再進行加密的座標系,如百度座標系。高德和Google在國內都是使用GCJ-02座標系,能夠說,GCJ-02是國內最普遍使用的座標系;java

3.百度座標系:bd-09,百度座標系是在GCJ-02座標系的基礎上再次加密偏移後造成的座標系,只適用於百度地圖。(目前百度API提供了從其它座標系轉換爲百度座標系的API,但卻沒有從百度座標系轉爲其餘座標系的API)ios

2、爲何會發生偏移?

1.因爲座標系之間不兼容,如在百度地圖上定位的經緯度拿到高德地圖上直接描點就確定會發生偏移;只考慮國內的狀況,高德地圖和Google地圖是能夠不通過轉換也可以準確顯示的(在國內用的都是GCJ-02座標系);下面是收錄了網上的WGS-84,GCJ-02,百度座標系(bd-09)之間的相互轉換的方法,經測試,是轉換後相對準確可用的。git

3、代碼

Java:github

package com.zehin.map.util; public class GPSUtil { public static double pi = 3.1415926535897932384626; public static double x_pi = 3.14159265358979324 * 3000.0 / 180.0; public static double a = 6378245.0; public static double ee = 0.00669342162296594323; public static double transformLat(double x, double y) { double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x)); ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; return ret; } public static double transformLon(double x, double y) { double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x)); ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0; return ret; } public static double[] transform(double lat, double lon) { if (outOfChina(lat, lon)) { return new double[]{lat,lon}; } double dLat = transformLat(lon - 105.0, lat - 35.0); double dLon = transformLon(lon - 105.0, lat - 35.0); double radLat = lat / 180.0 * pi; double magic = Math.sin(radLat); magic = 1 - ee * magic * magic; double sqrtMagic = Math.sqrt(magic); dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); double mgLat = lat + dLat; double mgLon = lon + dLon; return new double[]{mgLat,mgLon}; } public static boolean outOfChina(double lat, double lon) { if (lon < 72.004 || lon > 137.8347) return true; if (lat < 0.8293 || lat > 55.8271) return true; return false; } /** * 84 to 火星座標系 (GCJ-02) World Geodetic System ==> Mars Geodetic System * * @param lat * @param lon * @return */ public static double[] gps84_To_Gcj02(double lat, double lon) { if (outOfChina(lat, lon)) { return new double[]{lat,lon}; } double dLat = transformLat(lon - 105.0, lat - 35.0); double dLon = transformLon(lon - 105.0, lat - 35.0); double radLat = lat / 180.0 * pi; double magic = Math.sin(radLat); magic = 1 - ee * magic * magic; double sqrtMagic = Math.sqrt(magic); dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); double mgLat = lat + dLat; double mgLon = lon + dLon; return new double[]{mgLat, mgLon}; } /** * * 火星座標系 (GCJ-02) to 84 * * @param lon * @param lat * @return * */ public static double[] gcj02_To_Gps84(double lat, double lon) { double[] gps = transform(lat, lon); double lontitude = lon * 2 - gps[1]; double latitude = lat * 2 - gps[0]; return new double[]{latitude, lontitude}; } /** * 火星座標系 (GCJ-02) 與百度座標系 (BD-09) 的轉換算法 將 GCJ-02 座標轉換成 BD-09 座標 * * @param lat * @param lon */ public static double[] gcj02_To_Bd09(double lat, double lon) { double x = lon, y = lat; double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); double tempLon = z * Math.cos(theta) + 0.0065; double tempLat = z * Math.sin(theta) + 0.006; double[] gps = {tempLat,tempLon}; return gps; } /** * * 火星座標系 (GCJ-02) 與百度座標系 (BD-09) 的轉換算法 * * 將 BD-09 座標轉換成GCJ-02 座標 * * @param * bd_lat * @param bd_lon * @return */ public static double[] bd09_To_Gcj02(double lat, double lon) { double x = lon - 0.0065, y = lat - 0.006; double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi); double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi); double tempLon = z * Math.cos(theta); double tempLat = z * Math.sin(theta); double[] gps = {tempLat,tempLon}; return gps; } /**將gps84轉爲bd09 * @param lat * @param lon * @return */ public static double[] gps84_To_bd09(double lat,double lon){ double[] gcj02 = gps84_To_Gcj02(lat,lon); double[] bd09 = gcj02_To_Bd09(gcj02[0],gcj02[1]); return bd09; } public static double[] bd09_To_gps84(double lat,double lon){ double[] gcj02 = bd09_To_Gcj02(lat, lon); double[] gps84 = gcj02_To_Gps84(gcj02[0], gcj02[1]); //保留小數點後六位 gps84[0] = retain6(gps84[0]); gps84[1] = retain6(gps84[1]); return gps84; } /**保留小數點後六位 * @param num * @return */ private static double retain6(double num){ String result = String .format("%.6f", num); return Double.valueOf(result); } }

c#:web

public class GpsUtil { public static double pi = 3.1415926535897932384626; public static double x_pi = 3.14159265358979324 * 3000.0 / 180.0; public static double a = 6378245.0; public static double ee = 0.00669342162296594323; public static double TransformLat(double x, double y) { double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.Sqrt(Math.Abs(x)); ret += (20.0 * Math.Sin(6.0 * x * pi) + 20.0 * Math.Sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * Math.Sin(y * pi) + 40.0 * Math.Sin(y / 3.0 * pi)) * 2.0 / 3.0; ret += (160.0 * Math.Sin(y / 12.0 * pi) + 320 * Math.Sin(y * pi / 30.0)) * 2.0 / 3.0; return ret; } public static double TransformLon(double x, double y) { double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.Sqrt(Math.Abs(x)); ret += (20.0 * Math.Sin(6.0 * x * pi) + 20.0 * Math.Sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * Math.Sin(x * pi) + 40.0 * Math.Sin(x / 3.0 * pi)) * 2.0 / 3.0; ret += (150.0 * Math.Sin(x / 12.0 * pi) + 300.0 * Math.Sin(x / 30.0 * pi)) * 2.0 / 3.0; return ret; } public static double[] transform(double lat, double lon) { if (OutOfChina(lat, lon)) { return new double[] { lat, lon }; } double dLat = TransformLat(lon - 105.0, lat - 35.0); double dLon = TransformLon(lon - 105.0, lat - 35.0); double radLat = lat / 180.0 * pi; double magic = Math.Sin(radLat); magic = 1 - ee * magic * magic; double SqrtMagic = Math.Sqrt(magic); dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * SqrtMagic) * pi); dLon = (dLon * 180.0) / (a / SqrtMagic * Math.Cos(radLat) * pi); double mgLat = lat + dLat; double mgLon = lon + dLon; return new double[] { mgLat, mgLon }; } public static bool OutOfChina(double lat, double lon) { if (lon < 72.004 || lon > 137.8347) return true; if (lat < 0.8293 || lat > 55.8271) return true; return false; } /** * 84 to 火星座標系 (GCJ-02) World Geodetic System ==> Mars Geodetic System * * @param lat * @param lon * @return */ public static double[] Gps84ToGcj02(double lat, double lon) { if (OutOfChina(lat, lon)) { return new double[] { lat, lon }; } double dLat = TransformLat(lon - 105.0, lat - 35.0); double dLon = TransformLon(lon - 105.0, lat - 35.0); double radLat = lat / 180.0 * pi; double magic = Math.Sin(radLat); magic = 1 - ee * magic * magic; double SqrtMagic = Math.Sqrt(magic); dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * SqrtMagic) * pi); dLon = (dLon * 180.0) / (a / SqrtMagic * Math.Cos(radLat) * pi); double mgLat = lat + dLat; double mgLon = lon + dLon; return new double[] { mgLat, mgLon }; } /** * * 火星座標系 (GCJ-02) to 84 * * @param lon * @param lat * @return * */ public static double[] Gcj02ToGps84(double lat, double lon) { double[] gps = transform(lat, lon); double lontitude = lon * 2 - gps[1]; double latitude = lat * 2 - gps[0]; return new double[] { latitude, lontitude }; } /// <summary> /// 火星座標系 (GCJ-02) 與百度座標系 (BD-09) 的轉換算法 將 GCJ-02 座標轉換成 BD-09 座標 /// 高德谷歌轉爲百度 /// </summary> /// <param name="lat"></param> /// <param name="lon"></param> /// <returns></returns> public static double[] Gcj02ToBd09(double lat, double lon) { double x = lon, y = lat; double z = Math.Sqrt(x * x + y * y) + 0.00002 * Math.Sin(y * x_pi); double theta = Math.Atan2(y, x) + 0.000003 * Math.Cos(x * x_pi); double tempLon = z * Math.Cos(theta) + 0.0065; double tempLat = z * Math.Sin(theta) + 0.006; double[] gps = { tempLat, tempLon }; return gps; } /// <summary> /// 火星座標系 (GCJ-02) 與百度座標系 (BD-09) 的轉換算法 * * 將 BD-09 座標轉換成GCJ-02 座標 /// 百度座標轉爲高德谷歌座標 /// </summary> /// <param name="lat"></param> /// <param name="lon"></param> /// <returns></returns> public static double[] Bd09ToGcj02(double lat, double lon) { double x = lon - 0.0065, y = lat - 0.006; double z = Math.Sqrt(x * x + y * y) - 0.00002 * Math.Sin(y * x_pi); double theta = Math.Atan2(y, x) - 0.000003 * Math.Cos(x * x_pi); double tempLon = z * Math.Cos(theta); double tempLat = z * Math.Sin(theta); double[] gps = { tempLat, tempLon }; return gps; } /// <summary> /// gps84轉爲bd09 /// GPS座標轉爲百度座標 /// </summary> /// <param name="lat"></param> /// <param name="lon"></param> /// <returns></returns> public static double[] Gps84ToBd09(double lat, double lon) { double[] gcj02 = Gps84ToGcj02(lat, lon); double[] bd09 = Gcj02ToBd09(gcj02[0], gcj02[1]); return bd09; } /// <summary> /// 百度座標轉成GPS座標 /// </summary> /// <param name="lat"></param> /// <param name="lon"></param> /// <returns></returns> public static double[] Bd09ToGps84(double lat, double lon) { double[] gcj02 = Bd09ToGcj02(lat, lon); double[] gps84 = Gcj02ToGps84(gcj02[0], gcj02[1]); //保留小數點後六位 gps84[0] = Retain6(gps84[0]); gps84[1] = Retain6(gps84[1]); return gps84; } /// <summary> /// 保留小數點後六位 /// </summary> /// <param name="num"></param> /// <returns></returns> private static double Retain6(double num) { String result = String.Format("%.6f", num); return Double.Parse(result); } }

 

做者:青檬可樂_ 
連接:https://www.jianshu.com/p/d3dd4149bb0b 算法

 

 

四種Sandcastle方法生成c#.net幫助類幫助文檔

 

 方法1、Visual Studio新建documentation生成幫助文檔

        前段時間在網上收集和本身平時工做總結整理了《乾貨,比較全面的c#.net公共幫助類》,整理完成上傳github以後我又想,既然是幫助類,總得有個幫助文檔因而乎想到了Sandcastle,Sandcastle是微軟官方生成幫助文檔這發麪的工具。sql

       它能夠配合Microsoft Visual Studio生成的dll和xml註釋文件生成完整的幫助文檔。數據庫

       結合可視化工具Sandcastle Help File Builder,簡單直接,還能生成各類屬性的說明。c#

       支持Helpe1x:chm, Helper2x:Hxs, Website,HelperView等多種格式並且擴展靈活功能強大,下面咱們就看一下怎樣用Sandcastle生成chm文檔。

   1、下載

     首先咱們前往CodePlex下載Sandcastle,地址:http://sandcastle.codeplex.com/

     而後下載Sandcastle Help File Builder,地址:http://shfb.codeplex.com/,點擊右邊download下載便可。

2、安裝

      Sandcastle,直接Next就能夠了,Sandcastle Help File Builder要說一下的是,在MAML Schema IntelliSense for Visual Studio爲vs安裝插件的時候必定要勾選上,否則新建項目的時候會沒有這個選項。

3、設置

    在生成這裏設置xml文檔文件,保存,編譯以後在你項目目錄的bin\Debug就會看到生成的xml文件了。

4、新建項目documentation

    首先 新建documentation項目,這裏就是安裝Sandcastle Help File Builder的時候勾選上vs的緣由。若是沒有勾選上,這裏新建的時候沒有這個選項的。

    

 而後勾選上你剛纔已經生成的dll和xml文件,右鍵屬性如上圖寫上標題。編譯生成便可。這裏有一點要注意,可能會報錯(SHFB: Error BE0037: Could not find the path the the HTML Help 1 compiler. See the error number topic in the help file for details.),是沒有安裝Microsoft HTML Help,固然你安裝了以後能夠跳過此步驟。

若是沒有安裝Microsoft HTML Help,咱們到https://www.microsoft.com/en-us/download/details.aspx?id=21138去下載Microsoft HTML Help而後安裝。

5、生成

若是沒有報錯,直接生成,而後咱們項目目錄的Help就能夠看到生成的幫助文檔了

     是否是很簡單。這樣咱們就生成了以前幫助類的幫助文檔了。另外我再介紹幾種生成幫助文檔的方式。

方法2、cmd生成幫助文檔

在Sandcastle和Sandcastle Help File Builder都安裝好的前提下,

在咱們將步驟三生成的Common.Utility.dll 和Common.Utility.xml 拷貝至C:\Program Files (x86)\Sandcastle\Examples\Sandcastle(Sandcastle安裝路徑)下面。

這種方法是一種批處理的方法,而後咱們打開cmd,輸入build_sandcastle.bat vs2005 Common.Utility 回車,而後進行批處理。

咱們會看到這目錄下生成不少文件夾,若是過程沒有報錯,咱們在chm 文件夾就會看到咱們生成的幫助文檔了。

方法3、SandcastleBuilderGUI

咱們根據上面的設置,而後引入Common.Utility.dll 和Common.Utility.xml,生成便可。相關設置參考:http://www.cnblogs.com/lonely7345/archive/2010/01/13/1647245.html

方法4、Sandcastle Help File Builder可視化工具

經過Sandcastle的圖形操做界面。在C:\Program Files (x86)\Sandcastle\Examples\Generic\SandcastleGui.exe下打開以下界面。

根據圖上相關設置而後點擊Build按鈕。便可生成幫助文檔,是否是更方便簡潔。

固然前提是也是生成Common.Utility.dll 和Common.Utility.xml的狀況下面。

如上四種方法生成幫助文檔。至此c#.net幫助類告一段落。

 

本文來自:http://www.cnblogs.com/anyushengcms/p/7682501.html

 

 

 

文檔API生成神器SandCastle使用心得

 

1、功能描述

  關於Sandcastle網上的參考資料相對較少,Google出來不少資料都是全英文的,相對於我這種英語渣渣看起來仍是很費勁的。

  言簡意賅,Sandcastle主要功能是可以將C#類生成相似MSDN風格幫助文檔的工具,支持本地化,並提供一個基本的命令行編譯器界面和一個Visual Studio插件。
優勢:

  1.生成簡單,工做量小,幾分鐘以內就能完成一個項目的api文檔製做。
  2.自動生成索引項、內容項目表、主題塊和頁面佈局,提升一致性和熟悉程度。
  3.代碼高亮,易讀性強
  4.生成api界面美觀。
缺點:

  只支持visual studio,意思是隻支持微軟旗下產品。

2、下載與安裝

  我是在github中下載的sandcastle,連接隧道 https://github.com/EWSoftware/SHFB/releases,下載時需注意版本號,我沒有看版本備註就直接下載了最新版本的sandcastle,安裝後生成api後直接報錯了,不能生成成功。後來排查後發現是版本問題,個人idea是vs2013,當前sandcastle版本只支持最低vs2015的Idea,因此一直報錯。

這個版本中備註描述的很清楚,這是最後一個支持vs2013的版本。

3、配置SandCastle

  主要配置詳解

3.1 首先打開SandCastle,新建一個文件用來存放sandcastle新建的工程文件,相似vs中新建項目後的解決方案。

3.2 在項目屬性中選擇須要生成的api類型,若是你想生成相似MSDN幫助文檔風格,就能夠選擇Website。

3.3 Framework version 選擇生成解決方案的framework版本號,若是與之不一致,則生成api時會報錯

  chm類型生成的文檔(參考)

   website類型

  在vs中的引用類按f1可打開該類的幫助文檔。

3.4.點擊Project Explorer,點擊新建的api文件,右擊Documentation Sources選擇Add Document Source

  

3.5 選擇的類庫生成屬性中需在輸出中xml文檔文件複選框打鉤在生成,不然生成api無效。

3.6 選擇所需生成的類庫,也就是後綴名爲.csproj的文件便可

4、常見錯誤

4.1 SHFB: Error BE0043: Unexpected error detected in last build step.  See output above for details.

  錯誤信息的意思是缺乏程序集的引用,那我就須要把不用的程序集剔除掉,那麼如何剔除呢,請看一下操做

  

  

4.2 SHFB: Error BE0064: BUILD CANCELLED BY USER

  這個錯誤是因爲框架版本不一致所引發的,也就是若是該項目生成時選擇的framework版本爲4.5,而sandcastle配置的是4.0版本,那麼就會報錯。

4.3 Sandcastle [丟失<summary> 節點]的問題

  遇到這個問題,首先查看代碼註釋是否有<summary>節點,是否規範。

  

  而後有人會說我明明在代碼中已經定義了summary 節點,爲何還會報這種錯呢?

  這種我嘗試最暴力的方法就是讓它不提示這個錯誤,在sandcastle中設置missing tags,取消<summary> elments 的報錯信息,點擊取消複選框,哪一個節點的報錯就不會報錯。

  

5、SandCastle在vs中的使用

  前面說了都是sandcastle軟件的獨立使用,還有一種方法是將其集成在vs中使用,使用方法與獨立使用相差不大。

       若是是已經安裝了sandcastle,那麼請忽略如下安裝步驟。

       5.1 在sandcastle目錄文件夾下找到後綴爲vsix的插件,雙擊執行,若是彈出此擴展已安裝,那麼表示安裝成功

  

5.2 在需生成api的項目下添加項目,若是已安裝成功,那麼在已安裝的擴展插件中Documentation就會出現sandcastle插件,輸入名稱,存放位置,點擊肯定添加。

  

  5.3.添加完成後,此時的操做和不是集成在vs中的無明顯差異,如需生成文檔,右擊新建的文件,點擊生成便可。

  

6、運行生成API

  上面全部步驟完成以後就能夠運行sandcastle了,點擊build the help file生成

  

  生成成功以後在當前生成目錄下,查看生成文件是否齊全,若是文件不全,那麼緣由在於生成不成功或配置不正確

  

  雙擊index.html查看api中是否有報錯信息,代碼是否高亮,連接是否可點。

 

 

 

 

 

最近纔開始學習ASP.NET Core,發現社區的學習資料不少,可是相關的視頻教程不是不少,52ABP官方有兩個視頻教程,可是ABP框架比較臃腫,初學者學起來有點吃力,因此仍是推薦你們先啃書或者官方文檔,有點基礎知識了再看視頻教程學習,我的以爲這樣學起來比較好一點。通過一段時間的學習後我找到一些相關的免費視頻教程,發現仍是不錯,推薦給你們,共同窗習,共同進步!

一,文檔教程彙總:

.NET官方在線文檔 

ASP.NET Core官方中文離線教程

EF Core官方中文離線教程

零度教程(零度網站上面有不少免費博客和視頻教程)

大內老A專欄

 

二,視頻教程彙總:

說明:我比較喜歡在B站上看視頻教程,別人都是在上面追番,我卻喜歡在上面看一些教程,這是我全部的B站教程收藏夾,由於上面有不少其餘地方要收費教程和一些YouTube上搬運的視頻,並且還沒廣告,固然也有很多原創的UP主,我比較喜歡的是Anduin2017 ,他錄製了不少不錯視頻教程,推薦你們去看一下。這是我在B站正在學習或者學過的.NET Core視頻教程的收藏夾。你們不嫌麻煩也能夠關注一下我,我後面也打算在上面作一些技術視頻教程。固然網上還有一些不錯的收費視頻教程,做爲學生黨的我也沒有這個餘錢去買,一是比較貴,二是我也以爲不必,把下面這個教程多看幾遍,而後動手實踐一下,再多啃幾本書和瀏覽一些博客就夠了。

1,NewsPublish項目 — 在線視頻地址,這個新聞發佈系統主要由Asp.Net Core&Sql Server數據庫搭建,比較適合初學者,若是你們以爲Sql Server 2017客戶端比較大,吃內存的話,推薦你們用微軟的Azure Data Studio ,這個Sql Server的GUI比較輕量級,界面也很友好,固然功能確定也沒有Sql Server 2017那麼多,不過通常對於我來講夠用了。

另外推薦兩個有用的網站:

2,草根專欄的教程 — ASP.NET Core 2.1 + Ng6實戰GraphQL in ASP.NET Core 後面這個視頻教程也不太適合初學者,至少的有ASP.NET Core Web API相關的基礎知識才行,先看第一個視頻教程吧,結合做者的博客一塊兒學習。

3,52ABP的視頻教程 —ASP.NET Core 2.X ABP框架入門教程Asp.NET Core2.0 EF Core 項目實戰入門視頻教程,做者將ABP框架用ASP.NET Core實現的,裏面涉及的知識面比較廣,能夠結合52ABP的官方文檔學習,第一個教程以 .NET Core + Entity Framework Core爲基礎,中間涉及到各類插件和組件如: AutoMapper、CodeFirst、IOC,倉儲、MVC和EF,比較適合初學者。後面這個視頻是收費的教程,不過也不貴,才35元,確定要支持做者。

4,首屆.NET Core開源峯會演講 — 這個雖然不是作.NET Core項目教程,可是這個dnc開源峯會目前是由社區驅動的最高.NET Core在線開源會議,確定是要去了解一下的,這裏是官網Github,B站dncto視頻地址 ,第二屆會議將會在2018年12月30召開,固然若是你是.NET Core開發大牛,也能夠參加講師報名。

 

三,項目案例彙總:

一系列使人敬畏的.NET核心庫,工具,框架和軟件

Github上的一個開源項目,目標是創建一個由知名資源組成的分類社區驅動集合。

 

 

 Coding The World!

 

https://www.cnblogs.com/ckjbug/archive/2018/10/09/9763503.html

相關文章
相關標籤/搜索