SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
應用 ASP.NET Web API 2 OData
建置高互動性 APIs
陳傳興 / Bruce Chen
http://mvc.tw
◼ twMVC & Study4 社群講師
◼ SkillTree 兼任講師
◼ 現任微軟最有價值專家
◼ 任職於全美前50大私人企業
◼ 微軟 TechDay & MSDN 講師
◼ 著有《ASP.NET MVC 4/5網站開發美學》
◼ https://blog.kkbruce.net
◼ fb.me/kkbruce.tw
@Bruce
2
OData - the best way to REST
3
http://mvc.tw
https://youtu.be/wH5TUwzlaWI
4
http://mvc.tw
◼ An open protocol to allow the creation and
consumption of queryable and interoperable
RESTful APIs in a simple and standard way.
OData is …
5
http://mvc.tw
◼ 2007 年由微軟提出制定 OData,OData 1.0, 2.0, 3.0
都是微軟制定的開放標準,後續有 IBM、SAP 等加入共用
制定,於 2014/3/17 通過結構化資訊標準促進組織
(OASIS)認證。
◼ Simplifying data sharing across disparate
applications in enterprise, Cloud, and mobile
devices.
OASIS standard
6
http://mvc.tw
◼ 在 REST 的原則下,Everything is a Resource。
◼ http://services.odata.org/v4/TripPinServiceRW/People
Requesting resources
7
http://mvc.tw
◼ REST 原則也說,每個資源都有唯一識別碼標識。
◼ OData 能定義 Id | key 屬性。
Requesting an individual resource
8
http://mvc.tw
◼ REST 原則也說,每個資源都有唯一識別碼標識。
◼ OData 能定義 key 屬性,以取某一資源。
◼ /v4/TripPinServiceRW/People('russellwhyte')
Requesting an individual resource
9
http://mvc.tw
◼ 當然,RESTful API 也支援重要的 Query String。
◼ OData URI 定義了許多查詢選項可以附加至 URI,以修改
查詢方法基底的查詢,每個查詢選項的定義都是名稱/值組
(name/value pair)。
◼ OData URI 會附加$name=value參數值組至資源 URI。
Queries
10
http://mvc.tw
◼ 當然,RESTful API 也支援重要的 Query String。
◼ OData URI 定義了許多查詢選項可以附加至 URI,以修改
查詢方法基底的查詢,每個查詢選項的定義都是名稱/值組
(name/value pair)。
◼ OData URI 會附加$name=value參數值組至資源 URI。
Queries
11
http://mvc.tw
◼ /People?$top=2 & $select=FirstName,
LastName & $filter=Trips/any(d:d/Budget gt
3000)
Queries
12
http://mvc.tw
◼ REST 原則提到簡單和統一的介面。
◼ OData 使用統一的介面,在請求中使用不同的 HTTP 動詞
來完成其他CUD的操作。
◼ 新增一筆新資源,使用 HTTP POST 請求,並附上所需新增
JSON 資源。
Creating a new resource
13
http://mvc.tw
◼ POST http://services.odata.org/v4/TripPinServiceRW/People
{JSON Data}
Creating a new resource
14
http://mvc.tw
◼ 在 RESTful API,資源通常是有關聯性的。
◼ 例如,「客戶」與「訂單」與「產品」與「出貨」與「貨運」
等一連串的關係。
◼ 在 OData 可以在資源之間定義關聯性。
Relating resources
15
http://mvc.tw
◼ Russell 想邀請 Lewis 加入它的旅行計畫。
◼ POST People('lewisblack')/Trips/$ref
{
'@odata.id':/People('russellwhyte')/Trips(0)’
}
Relating resources
16
http://mvc.tw
◼ 在 RESTful API 可能包含一些複雜但重覆使用的邏輯。
◼ 為此,OData 支援定義 Function 和 Action 的操作。
◼ 它們本身也是資源的一部分,可以綁定到現有資源上。
Invoking a function
17
http://mvc.tw
◼ 在旅遊資源中有個 Function 叫 GetInvolvedPeople,
它能找到特定的人的特定行程。
◼ /TripPinServiceRW/People('russellwhyte')/Trips(
0)/Microsoft.OData.SampleService.Models.TripPin
.GetInvolvedPeople()
Invoking a function
18
19
System Query Option
http://mvc.tw
◼ GET serviceRoot/People
◼ 請求會回應一個 Person 的集合資源。
請求 – 實體集合
20
http://mvc.tw
◼ GET serviceRoot/People('russellwhyte’)
◼ 請求回應 UserName 為 “russellwhyte” 的 Person 的
實體。
請求 – 某一體實 by ID(Key)
21
http://mvc.tw
◼ GET serviceRoot/Airports('KSFO')/Name
請求 – 某一實體簡單屬性
22
http://mvc.tw
◼ GET serviceRoot/Airports('KSFO')/Location/Address
請求 – 某一實體複雜屬性
23
http://mvc.tw
◼ GET serviceRoot/Airports('KSFO')/Name/$value
請求 – 某一簡單屬性值
24
http://mvc.tw
◼ GET serviceRoot/People?
$filter=FirstName eq 'Scott'
查詢 - $filter
25
PM08
http://mvc.tw
◼ GET serviceRoot/Airports?
$filter=contains(Location/Address,
'San Francisco')
查詢 - $filter 複雜型別
26
http://mvc.tw
◼ GET serviceRoot/People?
$filter=Gender eq
Microsoft.OData.SampleService.Models.TripPin.Pe
rsonGender'Female'
查詢 - $filter 舉列屬性
27
http://mvc.tw
◼ GET serviceRoot/People?$expand=Trips
查詢 - $expand 中的 $filter
28
http://mvc.tw
◼ GET serviceRoot/People('keithpinckney’)?
$expand=Friends
查詢 - $expand
29
http://mvc.tw
◼ GET serviceRoot/People?$expand=Trips
◼ OData 4.0:
GET serviceRoot/People?
$expand=Trips($filter=Name eq 'Trip in US')
查詢 - $expand 中的 $filter
30
http://mvc.tw
◼ GET serviceRoot/People('scottketchum')/Trips?
$orderby=EndsAt desc
查詢 - $orderby
31
http://mvc.tw
◼ GET serviceRoot/People?$top=2
查詢 - $top
32
http://mvc.tw
◼ GET serviceRoot/People?$skip=18
查詢 - $skip
33
http://mvc.tw
◼ GET serviceRoot/People/$count
查詢 - $count
34
http://mvc.tw
◼ GET serviceRoot/Airports?$select=Name, IcaoCode
查詢 - $select
35
http://mvc.tw
◼ serviceRoot/People?$search=Boise
◼ serviceRoot/People?$search=Milton
查詢 - 糢糊到不行的 $search
36
http://mvc.tw
◼ GET serviceRoot/People?
$filter=Emails/any(s:endswith(s, ‘example.com’))
◼ any, all Boolean expression
查詢 – Lambda
37
http://mvc.tw
◼ GET serviceRoot/Me/Friends?
$filter=Friends/any(f:f/FirstName eq 'Scott')
查詢 - Lambda
38
http://mvc.tw
◼ POST serviceRoot/People
新增實體
39
http://mvc.tw
◼ DELETE serviceRoot/People('vincentcalabrese')
刪除實體
40
http://mvc.tw
◼ PATCH serviceRoot/People('russellwhyte')
更新實體
41
http://mvc.tw
◼ POST serviceRoot
/People('scottketchum')/Friends/$ref
關聯作業
42
http://mvc.tw
◼ PUT
serviceRoot/People('russellwhyte')/Trips(1001)/
PlanItems(11)/Microsoft.OData.SampleService.Mod
els.TripPin.Flight/Airline/$ref
修改連結
43
Function 和 Action
44
http://mvc.tw
◼ GET serviceRoot/TripPinService/
GetNearestAirport(lat = 33, lon = -118)
呼叫 Unbound Function
45
http://mvc.tw
◼ GET
serviceRoot/People('russellwhyte')/Microsoft.OD
ata.SampleService.Models.TripPin.GetFavoriteAir
line()
呼叫 Bound Function
46
http://mvc.tw
◼ POST
serviceRoot/People('russellwhyte')/Microsoft.OD
ata.SampleService.Models.TripPin.ShareTrip
呼叫 Bound Action
47
http://mvc.tw
◼ PATCH serviceRoot/People('clydeguess’)
If-Match: W/"08D15F3DD9126D84"
Etag – 更新實體
48
http://mvc.tw
◼ DELETE serviceRoot/People('vincentcalabrese’)|
If-Match: W/"08D15F3DD9A61539"
Etag- 刪除實體
49
http://mvc.tw
◼ OData v4.0 URL Conventions
◼ http://docs.oasis-
open.org/odata/odata/v4.0/odata-v4.0-part2-url-
conventions.html
所有的一切都在這裡
50
51
ASP.NET Web API OData
http://mvc.tw
◼ 免費線上 MVA 課程
◼ https://mva.microsoft.com/zh-tw/training-
courses/web-services-aspnet-web-api-2-11740
Web Services 開發實戰:
使用 ASP.NET Web API 2
52
http://mvc.tw
◼ 免費線上 Channel9 課程
◼ https://channel9.msdn.com/Blogs/Channel9Taiwan/
◼ Developing-Web-Services-Using-ASPNET-WebAPI2-Part1
◼ Developing-Web-Services-Using-ASPNET-WebAPI2-Part2
◼ Developing-Web-Services-Using-ASPNET-WebAPI2-Part3
◼ Developing-Web-Services-Using-ASPNET-WebAPI2-Part4
◼ Developing-Web-Services-Using-ASPNET-WebAPI2-Part5
Web Services 開發實戰:
使用 ASP.NET Web API 2
53
54
Lab: ASP.NET Core OData
http://mvc.tw
◼ Install-Package Microsoft.AspNetCore.OData -
Version 7.0.0
◼ dotnet add package Microsoft.AspNetCore.OData -
-version 7.0.0
Microsoft ASP.NET Core 2.0
for OData v4.0
55
http://mvc.tw
◼ Install-Package
Microsoft.EntityFrameworkCore.InMemory
-Version 2.1.1
◼ dotnet add package
Microsoft.EntityFrameworkCore.InMemory
--version 2.1.1
In-memory database provider for
Entity Framework Core
56
http://mvc.tw
總結
57
http://mvc.tw
不定期開課
58
https://skilltree.my/
http://mvc.tw
Blog 是記錄知識的最佳平台
59
http://mvc.tw
感謝 Jetbrains 贊助贈品
60
https://www.jetbrains.com/resharper/
http://mvc.tw
業界師資、實戰教學
61
http://skilltree.my
謝謝各位
• 本投影片所包含的商標與文字皆屬原著作者所有。
• 本投影片使用的圖片皆從網路搜尋。
• 本著作係採用姓名標示-非商業性-相同方式分享 3.0 台灣授權。閱讀本授權條款,請到
http://creativecommons.org/licenses/by-nc-sa/3.0/tw/,或寫信至Creative Commons, 444 Castro
Street, Suite 900, Mountain View, California, 94041, USA.
h t t p : / / m v c . t w

Mais conteúdo relacionado

Mais procurados

twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC
 
twMVC#43 YARP
twMVC#43 YARPtwMVC#43 YARP
twMVC#43 YARPtwMVC
 
twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署twMVC
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC
 
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC
 
twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC
 
twMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2twMVC
 
twMVC#21 | 你所不知道的 Visual Studio
twMVC#21 | 你所不知道的 Visual StudiotwMVC#21 | 你所不知道的 Visual Studio
twMVC#21 | 你所不知道的 Visual StudiotwMVC
 
twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC
 
twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC
 
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC
 
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC
 
twMVC#29 -Learning Machine Learning with Movie Recommendation
twMVC#29 -Learning Machine Learning with Movie RecommendationtwMVC#29 -Learning Machine Learning with Movie Recommendation
twMVC#29 -Learning Machine Learning with Movie RecommendationMia Chang
 
twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角
twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角
twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角twMVC
 
動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15twMVC
 
twMVC#22 | 一個微信專案從0到.000的效能調教之路
twMVC#22 | 一個微信專案從0到.000的效能調教之路twMVC#22 | 一個微信專案從0到.000的效能調教之路
twMVC#22 | 一個微信專案從0到.000的效能調教之路twMVC
 
twMVC#29 | 當.Net Core 遇到AWS Lambda
twMVC#29 | 當.Net Core 遇到AWS LambdatwMVC#29 | 當.Net Core 遇到AWS Lambda
twMVC#29 | 當.Net Core 遇到AWS LambdatwMVC
 

Mais procurados (20)

twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
 
twMVC#43 YARP
twMVC#43 YARPtwMVC#43 YARP
twMVC#43 YARP
 
twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
 
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
 
twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決
 
twMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure Functions
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2
 
twMVC#21 | 你所不知道的 Visual Studio
twMVC#21 | 你所不知道的 Visual StudiotwMVC#21 | 你所不知道的 Visual Studio
twMVC#21 | 你所不知道的 Visual Studio
 
twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 Log
 
twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結
 
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
 
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹
 
twMVC#29 -Learning Machine Learning with Movie Recommendation
twMVC#29 -Learning Machine Learning with Movie RecommendationtwMVC#29 -Learning Machine Learning with Movie Recommendation
twMVC#29 -Learning Machine Learning with Movie Recommendation
 
twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角
twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角
twMVC#25 | ASP.NET MVC A/B Testing 的眉眉角角
 
動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15
 
twMVC#22 | 一個微信專案從0到.000的效能調教之路
twMVC#22 | 一個微信專案從0到.000的效能調教之路twMVC#22 | 一個微信專案從0到.000的效能調教之路
twMVC#22 | 一個微信專案從0到.000的效能調教之路
 
twMVC#29 | 當.Net Core 遇到AWS Lambda
twMVC#29 | 當.Net Core 遇到AWS LambdatwMVC#29 | 當.Net Core 遇到AWS Lambda
twMVC#29 | 當.Net Core 遇到AWS Lambda
 

Semelhante a twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS

twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web APItwMVC
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8twMVC
 
ASP.NET MVC 開發分享
ASP.NET MVC 開發分享ASP.NET MVC 開發分享
ASP.NET MVC 開發分享Eric Ping
 
大型互联网应用架构设计
大型互联网应用架构设计大型互联网应用架构设计
大型互联网应用架构设计thinkinlamp
 
輕鬆上手Asp.net web api 2.1-twMVC#14
輕鬆上手Asp.net web api 2.1-twMVC#14輕鬆上手Asp.net web api 2.1-twMVC#14
輕鬆上手Asp.net web api 2.1-twMVC#14twMVC
 
twMVC#14 | 輕鬆上手ASP.NET Web API 2
twMVC#14 | 輕鬆上手ASP.NET Web API 2twMVC#14 | 輕鬆上手ASP.NET Web API 2
twMVC#14 | 輕鬆上手ASP.NET Web API 2twMVC
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing江華 奚
 
ASP.NET MVC 善用網路資源快速完打造網站
ASP.NET MVC 善用網路資源快速完打造網站ASP.NET MVC 善用網路資源快速完打造網站
ASP.NET MVC 善用網路資源快速完打造網站twMVC
 
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile ServicesKuo-Chun Su
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 twMVC
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Railsshaokun
 
建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4Cat Chen
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京Joseph Chiang
 
twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事twMVC
 
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析Php应用程序常见安全问题解析
Php应用程序常见安全问题解析mysqlops
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教Bruce Chen
 

Semelhante a twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS (20)

twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web API
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8
 
ASP.NET MVC 開發分享
ASP.NET MVC 開發分享ASP.NET MVC 開發分享
ASP.NET MVC 開發分享
 
大型互联网应用架构设计
大型互联网应用架构设计大型互联网应用架构设计
大型互联网应用架构设计
 
輕鬆上手Asp.net web api 2.1-twMVC#14
輕鬆上手Asp.net web api 2.1-twMVC#14輕鬆上手Asp.net web api 2.1-twMVC#14
輕鬆上手Asp.net web api 2.1-twMVC#14
 
twMVC#14 | 輕鬆上手ASP.NET Web API 2
twMVC#14 | 輕鬆上手ASP.NET Web API 2twMVC#14 | 輕鬆上手ASP.NET Web API 2
twMVC#14 | 輕鬆上手ASP.NET Web API 2
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
ASP.NET MVC 善用網路資源快速完打造網站
ASP.NET MVC 善用網路資源快速完打造網站ASP.NET MVC 善用網路資源快速完打造網站
ASP.NET MVC 善用網路資源快速完打造網站
 
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Rails
 
建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
 
twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事
 
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 

Mais de twMVC

twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning ServicestwMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning ServicestwMVC
 
.NET 7 家族新成員: Microsoft Orleans v7
.NET 7 家族新成員:Microsoft Orleans v7.NET 7 家族新成員:Microsoft Orleans v7
.NET 7 家族新成員: Microsoft Orleans v7twMVC
 
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC
 
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC
 
twMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC
 
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁twMVC
 
twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波twMVC
 
twMVC#30 | Bootstrap 搶先玩
twMVC#30 | Bootstrap 搶先玩twMVC#30 | Bootstrap 搶先玩
twMVC#30 | Bootstrap 搶先玩twMVC
 
twMvc#30 | 技術人員與業務團隊的無礙的溝通法則
twMvc#30 | 技術人員與業務團隊的無礙的溝通法則twMvc#30 | 技術人員與業務團隊的無礙的溝通法則
twMvc#30 | 技術人員與業務團隊的無礙的溝通法則twMVC
 
twMVC#29 | 從電影推薦預測開始學機器學習
twMVC#29 | 從電影推薦預測開始學機器學習twMVC#29 | 從電影推薦預測開始學機器學習
twMVC#29 | 從電影推薦預測開始學機器學習twMVC
 
twMVC#28 | visual studio 2017 新功能介紹
twMVC#28 | visual studio 2017 新功能介紹twMVC#28 | visual studio 2017 新功能介紹
twMVC#28 | visual studio 2017 新功能介紹twMVC
 
twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹twMVC
 

Mais de twMVC (12)

twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning ServicestwMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
 
.NET 7 家族新成員: Microsoft Orleans v7
.NET 7 家族新成員:Microsoft Orleans v7.NET 7 家族新成員:Microsoft Orleans v7
.NET 7 家族新成員: Microsoft Orleans v7
 
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇
 
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwright
 
twMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC#41 hololens2 MR
twMVC#41 hololens2 MR
 
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁
 
twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波
 
twMVC#30 | Bootstrap 搶先玩
twMVC#30 | Bootstrap 搶先玩twMVC#30 | Bootstrap 搶先玩
twMVC#30 | Bootstrap 搶先玩
 
twMvc#30 | 技術人員與業務團隊的無礙的溝通法則
twMvc#30 | 技術人員與業務團隊的無礙的溝通法則twMvc#30 | 技術人員與業務團隊的無礙的溝通法則
twMvc#30 | 技術人員與業務團隊的無礙的溝通法則
 
twMVC#29 | 從電影推薦預測開始學機器學習
twMVC#29 | 從電影推薦預測開始學機器學習twMVC#29 | 從電影推薦預測開始學機器學習
twMVC#29 | 從電影推薦預測開始學機器學習
 
twMVC#28 | visual studio 2017 新功能介紹
twMVC#28 | visual studio 2017 新功能介紹twMVC#28 | visual studio 2017 新功能介紹
twMVC#28 | visual studio 2017 新功能介紹
 
twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹
 

twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS