Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
作者:滴答的雨 來源:https://www.cnblogs.com/heyuquan/p/11192867.html
源跨平臺的.NET Core,還沒上車的趕緊的,來不及解釋了……
本系列文章,主要分享一些.NET Core比較優秀的社區資料和微軟官方資料。
我進行了知識點歸類,讓大家可以更清晰的學習.NET Core。
首先感謝資料原作者的貢獻。
第一篇:.NET Core 學習資料精選:入門
介紹.NET歷史、開源之路、基礎、路由、依賴注入、HttpContext、cookie|session、HttpClient、gRPC、單元測試、發布部署等等。
第二篇:.NET Core 學習資料精選:進階&高級
這是第一篇,知識點如圖:
一、.NET 簡介
1、.NET 開源之路
.NET FrameWork發展史
C# 語言版本發展史
2014.11月 .NET Core 項目啟動,2016.06月 .NET Core 1.0 發布
微軟 .NET Core3.0 規劃藍圖
.NET Core 3.0 下一個版本命名為:.NET 5
2、.NET Core提供的特性
1、開源、免費
2、輕量級、跨平臺
3、組件化、模塊化、IOC+Nuget、中間件
4、高性能
5、統一了MVC和WebAPI編程模型
6、可測試性
7、微服務、容器化支持
8、標準化 .NET API 規范- .NET STANDARD
3、遷移到.NET Core
目前市面上還存在很多傳統 .NET 舊項目,我們需要根據公司情況決定是否升級到.NET Core。
如果需要進行舊項目升級的,可以參考文章:《.NET項目遷移到.NET Core操作指南》
二、VS 和 .NET Core安裝
VS 2019安裝教學
VS 2019正式版注冊碼秘鑰
安裝 .NET CoreRuntime 和.NET Core SDK
【微軟官方文檔】ASP.NET Core *.* 個版本新特性
指定要使用的 .NET Core 版本
如何刪除 .NET Core 過時的運行時和 SDK
[坑]安裝 .Net Core 2.2 SDK后,VS2017依然不能設置core2.2為目標框架
三、基礎
ASP.NET Core開發者路線指南
微軟官方ASP.NET Core教程文檔https://docs.microsoft.com/zh-cn/aspnet/?view=aspnetcore-2.2#pivot=core
.NET Core 命令行接口 (CLI) 工具
.NET Core 運行程序注意事項(dotnet dll 與 dotnet run)
ASP.NET Core API 一覽表
查詢 NET API 及類庫在各版本中實現情況
ASP.NET Core 項目目錄結構介紹
ASP.NET Core 程序自定義IP和端口的幾種方式
ASP.NET Core 中的Startup類
ASP.NET Core 中使用多個環境(開發、預發布、生產)- 默認為 Production
ASP.NET Core 動作結果(ActionResult)
ASP.NET Core 中控制器操作的多路徑返回類型(IActionResult)
.NET Core 3.0 新的System.Text.JsonAPI
四、配置
ASP.NET Core 中的配置(json、xml、命令行、環境變量、內存變量等)
ASP.NET Core 中的選項模式
.Net Core 自定義配置源從遠程API讀取配置(ConfigurationProvider)
邁向現代化的 .Net 配置指北(配置到類自動映射)
五、路由、模型綁定
ASP.NET Core WebAPI中,Controller標注 [ApiController] 特性,其路由只能使用[route]特性方式
ASP.NET Core MVC 構建可讀性更高的ASP.NET Core 路由
ASP.NET Core 中的模型綁定
ASP.NET Core 中的自定義模型綁定(IModelBinder)
ASP.NET Core 中的 URL 重寫中間件
六、依賴注入(IOC、DI)
什么是控制反轉,和依賴注入:
控制反轉的意思就是:平常我們需要一個類對象的時候需要new出來,而現在我們把new一個類對象的工作交給了IOC容器,當我們需要一個類對象的時候直接向IOC容器要,就可以了,這個就是控制反轉。(控制權交個了IOC容器)
依賴注入的意思就是:當我需要一個類對象,IOC容器給我們這個類對象的過程其實就是依賴注入,依賴注入有構造函數注入和屬性注入。
[官方]在 ASP.NET Core 依賴注入
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.2
全面理解 ASP.NET Core 依賴注入
ASP.NET Core 中依賴注入的N種玩法
ASP.NET Core 自定義特性實現屬性注入
ASP.NET Core 原生DI實現批量注冊
ASP.NET Core 中如何注入同一個接口的多個實現
ASP.NET Core 中多個接口對應同一個實現的正確姿勢
ASP.NET Core 依賴注入擴展庫 Scrutor
[OSharp]使用 IServiceProvider.GetService<T>() 實現按需注入,優化性能
七、ASP.NET Core 集合 Autofac 的使用
AutoFac三種注入方式:按類型、按名稱、按鍵
ASP.NET Core 2.0 之旅---AutoFacIOC容器的使用教程
ASP.NET Core 2.0 之旅---AutoFac倉儲泛型的依賴注入(泛型注入)
ASP.NET Core 2.0 之旅---數據訪問倉儲模式的事務管理(uow+rp)
ASP.NET Core 中使用Autofac實現屬性注入的代碼片段
八、ASP.NET Core WebAPI
創建ASP.NET Core Web API (ControllerBase、參數綁定源)
ASP.Net Core WebAPI 幾種版本控制對比
使用 Web API 約定
使用 Web API 分析器告警缺失的約定
九、ASP.NET Core:MVC 與 Razor Pages
ASP.NET Core MVC 靜態文件目錄配置與訪問授權
新的 Razor 機制
https://docs.microsoft.com/zh-cn/aspnet/core/razor-pages/sdk?view=aspnetcore-2.2
ASP.NET Core SignalR 入門
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/signalr?view=aspnetcore-2.2&tabs=visual-studio
WebForm & MVC & Razor Pages
十、HttpContext
ASP.NET Core 中訪問 HttpContext 的方法
ASP.NET Core 中通過IHttpContextAccessor實現公用靜態HttpContext
十一、狀態管理
常見方式:Cookie、Session、TempData、查詢字符串、HttpContext.Items、緩存、依賴關系注入
ASP.NET Core 中的會話和應用狀態
1、session
ASP.NET Core 在通用數據保護條例規則下使用 session
ASP.NET Core 使用Redis存儲Session
2、cookie
ASP.NET Core SameSite 設置引起 Cookie 在 QQ 瀏覽器中不起作用
[github]ASP.NET Core CookieManager
https://github.com/nemi-chand/CookieManager
十二、通信
對比 gRPC 服務和 HTTP API 服務
1、HttpClient
ASP.NET Core HttpClient的演進和避坑
ASP.NET Core HttpClient的各種用法、生命周期管理
DotNetCore 使用Http請求及基于 Polly 的處理故障
DotNetCore 中 HttpClientFactory 類源碼分析
2、gRPC
ASP.NET Core 3.0 上的gRPC服務模板初體驗(多圖)
ASP.NET Core gRPC的配置
十三、發布部署
ASP.NET Core 使用 IIS 進行托管部署
ASP.NET Core 部署到 Linux 進行托管
ASP.NET Core 使用Supervisor進行托管部署
ASP.NET Core 使用Docker進行容器化托管
配置 ASP.NET Core 以使用代理服務器和負載均衡器
使用 Nginx 在 Linux 上托管 ASP.NET Core
使用 Apache 在 Linux 上托管 ASP.NET Core
十四、單元測試
.NET Core 和 .NET Standard 單元測試最佳做法
使用 dotnet test 和 xUnit 在 .NET Core 中進行 C# 單元測試
使用 dotnet test 和 NUnit 在 .NET Core 中進行 C# 單元測試
使用 dotnet test 和 MSTest 在 .NET Core 中進行 C# 單元測試
使用 dotnet test --filter 進行選擇性單元測試
over,謝謝查閱,覺得文章對你有收獲,請多幫推薦。歡迎提供更好的資料信息。
nput框作為一個簡單的輸入框,你對它的屬性知道有多少?
常見的屬性(帶new為h5新增屬性):
1、accept:accept 屬性規定了可通過文件上傳提交的服務器接受的文件類型。僅用于input的type類型為"file"的時候。
屬性值:
audio/*,音頻
video/* ,視頻
image/* ,圖片
MIME_type,一個有效的 MIME 類型,不帶參數
<input type="file" name="pic" accept="image/*" />
// 如需規定多個值,請使用逗號分隔
<input type="file" accept="audio/*,video/*,image/*" />
2、value:指定元素的value值。
屬性值:text
value 屬性對于不同 input 類型,用法也不同:
注意:value 屬性對于 <input type="checkbox"> 和 <input type="radio"> 是必需的。
注意:value 屬性不適用于 <input type="file">。
<input value="文本" />
3、name:表示的該文本輸入框名稱。用于表單提交后引用表單數據。只有設置了 name 屬性的表單元素才能在提交表單時傳遞它們的值。
屬性值:text
<input type="text" name="email" />
4、size:輸入框的長度大小。
屬性值:number
<input type="text" name="email" size="35" />
注意:size 屬性適用于下面的 input 類型:text、search、tel、url、email 和 password。
5、maxlength:輸入框中允許輸入字符的最大數。
屬性值:number
<input type="text" name="usrname" maxlength="10" />
6、readonly:表示該框中只能顯示,不能添加修改。
<input type="text" name="country" value="中國" readonly />
7、required(new):屬性規定必須在提交表單之前填寫輸入字段。
<input type="text" name="username" required />
8、alt:定義圖像輸入的替代文本。 (只針對type="image")
屬性值:text
<input type="image" src="submit.gif" alt="Submit" width="48" height="48" />
9、autocomplete(new):autocomplete 屬性規定輸入字段是否應該啟用自動完成功能。
屬性值:on/off,默認啟動自動完成功能。
<input autocomplete="off" />
注意:autocomplete 屬性適用于下面的 <input> 類型:text、search、url、tel、email、password、datepickers、range 和 color。
10、autofocus(new):屬性規定當頁面加載時 <input> 元素應該自動獲得焦點。
屬性值:autofocus
<input type="text" autofocus />
11、checked:checked 屬性規定在頁面加載時應該被預先選定的 <input> 元素。 (只針對 type="checkbox" 或者 type="radio")
屬性值:checked
<input type="checkbox" name="vehicle" value="Car" checked />小汽車
12、disabled:disabled 屬性規定應該禁用的 <input> 元素。
屬性值:disabled
<input type="text" name="lname" disabled />
13、form(new): form 屬性規定 <input> 元素所屬的一個或多個表單。
位于 form 表單外的輸入字段(但仍然屬于 form 表單的一部分):
<form action="demo-form.php" id="form1">
First name: <input type="text" name="fname"><br>
<input type="submit" value="提交">
</form>
14、formaction(new):屬性規定當表單提交時處理輸入控件的文件的 URL。(只針對 type="submit" 和 type="image")
屬性值:URL
<input type="submit" formaction="demo-admin.php" value="提交" />
注意:
formaction 屬性規定當表單提交時處理輸入控件的文件的 URL。
formaction 屬性覆蓋 <form> 元素的 action 屬性。
15、formenctype(new):屬性規定當表單數據提交到服務器時如何編碼(只適合 type="submit" 和 type="image")。
屬性值:application/x-www-form-urlencoded ;multipart/form-data text/plain
<input type="submit" formenctype="multipart/form-data" value="以 Multipart/form-data 提交" />
注意:
formenctype 屬性規定當表單數據提交到服務器時如何編碼(僅適用于 method="post" 的表單)。
formenctype 屬性覆蓋 <form> 元素的 enctype 屬性。
16、formmethod (new):定義發送表單數據到 action URL 的 HTTP 方法。 (只適合 type="submit" 和 type="image")
屬性值:get / post
<input type="submit" formmethod="post" formaction="demo-post.php" value="使用 POST 提交" />
17、formnovalidate(new):formnovalidate 屬性覆蓋 <form> 元素的 novalidate 屬性。
屬性值:formnovalidate
<input type="submit" formnovalidate="formnovalidate" value="不驗證提交">
18、formtarget (new):規定表示提交表單后在哪里顯示接收到響應的名稱或關鍵詞。(只適合 type="submit" 和 type="image")
屬性值:_blank; _self; _parent; _top; framename
<input type="submit" formtarget="_blank" value="提交到一個新的頁面上">
19、height (new);width(new):屬性規定 <input> 元素的高度和寬度。 (只針對type="image")
屬性值:pixels
<input type="image" src="img_submit.gif" alt="Submit" width="48" height="48" />
20、max (new);min(new):屬性規定 <input> 元素的最大值和最小值。
屬性值:number;date
<input type="date" name="bday" max="1979-12-31">
<input type="date" name="bday" min="2000-01-02">
<input type="number" name="quantity" min="1" max="5">
21、multiple (new):屬性規定允許用戶輸入到 <input> 元素的多個值。
屬性值:multiple
<input type="file" name="img" multiple>
注意:multiple 適用于以下 input 類型:email 和 file。
22、pattern (new):pattern 屬性規定用于驗證 <input> 元素的值的正則表達式。
屬性值:regexp;
<form action="demo_form.html">
Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
<input type="submit">
</form>
23、placeholder (new): 屬性規定可描述輸入 <input> 字段預期值的簡短的提示信息 。
屬性值:text
<input placeholder="請輸入姓名" />
24、src : src 屬性規定顯示為提交按鈕的圖像的 URL。 (只針對 type="image")
屬性值:URL
<input type="image" src="submit.gif" alt="Submit" />
25、step (new): step 屬性規定 <input> 元素的合法數字間隔。
屬性值:number
<input type="number" name="points" step="3">
26、list(new) :屬性引用 <datalist> 元素,其中包含 <input> 元素的預定義選項。
屬性值:datalist_id
<input list="browsers">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Google Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
27、type: type 屬性規定要顯示的 <input> 元素的類型。
屬性值:button;checkbox;color;date;datetime;datetime-local;email;file;hidden;image;month;number;password;radio;range;reset;search;submit;tel;text;time;url;week
type的屬性值眾多,也是用的比較多的一個。
button:定義可點擊的按鈕(通常與 JavaScript 一起使用來啟動腳本)。
checkbox:定義復選框。
color(new):定義拾色器。
date(new):定義 date 控件(包括年、月、日,不包括時間)。
datetime(new):定義 date 和 time 控件(包括年、月、日、時、分、秒、幾分之一秒,基于 UTC 時區)。
datetime-local(new):定義 date 和 time 控件(包括年、月、日、時、分、秒、幾分之一秒,不帶時區)。
email(new):定義用于 e-mail 地址的字段。file定義文件選擇字段和 "瀏覽..." 按鈕,供文件上傳。
hidden:定義隱藏輸入字段。
image:定義圖像作為提交按鈕。
month(new):定義 month 和 year 控件(不帶時區)。
number(new):定義用于輸入數字的字段。
password:定義密碼字段(字段中的字符會被遮蔽)。
radio:定義單選按鈕。
range(new):定義用于精確值不重要的輸入數字的控件(比如 slider 控件)。
reset:定義重置按鈕(重置所有的表單值為默認值)。
search(new):定義用于輸入搜索字符串的文本字段。
submit:定義提交按鈕。
tel(new):定義用于輸入電話號碼的字段。
text:默認。定義一個單行的文本字段(默認寬度為 20 個字符)。
time(new):定義用于輸入時間的控件(不帶時區)。
url(new):定義用于輸入 URL 的字段。
week(new):定義 week 和 year 控件(不帶時區)。
數對于任何編程語言來說都是核心部分。通過函數可以封裝任意多條語句和表達式,而且可以在任何地方、任何時候調用函數方法來執行。
在JavaScript中的函數使用function關鍵字聲明,然后就是函數的參數和函數體。
函數的語法如下:
function functionName(arg0,arg1,arg2,...){ statements }
示例:
定義了一個hello方法, 這個函數通過其函數名來調用,函數輸出結果是"Hello World"。函數中定義中的命名參數h和w被作用了字符串拼接的兩個操作數,最終結果通過控制臺打印顯示出來。
JavaScript中的函數在定義時不必指定是否返回值。實際上,任何函數在任何時候都通過return語句后跟要返回的值來實現返回值。
帶有返回函數的語法如下:
function functionName(arg0,arg1,arg2,...){ statements return result; }
示例:
凡是帶有返回值的函數,在return之后寫其它代碼塊是不會在執行的,因為已經把結果都返回出去了相當于這個函數已經結束了。
在嚴格模式對函數存在一些限制:
1、不能把函數名命名為eval或者arguments;
2、不能把參數命名為eval或arguments;
3、不能出現兩個命名參數同名的情況。
如果發生以上的情況,會導致語法錯誤,代碼執行不下去。
JavaScript函數的參數與大多數語言的函數參數有一點區別。JavaScript函數不介意傳遞進來多少個參數,也不在乎傳遞進來的參數是什么類型。即使定義的函數帶有接收兩個參數,在調用這個函數時也不一定要傳這兩個參數??梢圆粋鲄?、可以傳一個參數、可以傳兩個參數甚至跟多。但是對于JavaScript解析器來說是不會報錯的,完全正常解析。
原因在于JavaScript內部接收參數始終都是以數組來接收,實際上我們可以通過arguments對象來訪問這個參數數組,從來獲取傳遞函數的每一個參數信息。
訪問arguments對象數組可以使用方括號來訪問它的每一個元素,使用length屬性來確定傳遞進來多少個參數。在前面的hello函數可以通過arguments[0]來獲取參數。
示例:
arguments獲取參數也是有順序的,第一個參數傳進來的是什么就是什么。
還可以不定義參數傳遞的值
如果值傳遞了一個值,然后通過arguments[1]獲取參數,其實結果是undefined。arguments[0]是正常的參數值,因為只傳了一個值。
JavaScript中除了對象類型參數,其它參數都是值傳遞,不可能通過引用參數傳遞
而且JavaScript中的函數不存在重載,定義多個函數名相同并且參數個數不同的方法進行調用,永遠都是拿最后定義的那個函數作為方法調用。
調用的是帶兩個參數的函數,因為我這里只傳了一個值,第二個值默認是undefined。
所以說JavaScript不存在方法重載的這一方法。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。