ServiceStack กับ ASP.Net Web API [ปิด]


299

ฉันต้องการเขียน API สไตล์ REST ใหม่และดู ServiceStack และค่อนข้างชอบ อย่างไรก็ตามฉันได้เห็นแล้วว่า Microsoft ได้เปิดตัวโครงการ ASP.Net Web API ซึ่งเป็นส่วนหนึ่งของ MVC 4 เบต้าใหม่ มีใครดูที่โครงการ Web API ใหม่หรือไม่ คุณสามารถให้ข้อดี / ข้อเสียของแต่ละระบบได้หรือไม่?

คำตอบ:


389

พวกเขามีความคล้ายกันมากกรณีการใช้งานเป็นผู้ดูแลนำสำหรับโครงการ ServiceStackฉันมีความเข้าใจที่ดีในข้อดี ServiceStack ของและผลประโยชน์ทางธรรมชาติหลายของการออกแบบข้อความตามมัน

ServiceStack มีมาตั้งแต่ปี 2008 ในฐานะโครงการที่ดำเนินการโดย OSS ตั้งแต่เริ่มก่อตั้งโดยมีเป้าหมายเดียวในการส่งเสริมการออกแบบที่ถูกต้องและการนำไปใช้งานของบริการระยะไกลที่ปราศจากแรงเสียดทาน

การออกแบบที่เรียบง่ายและสง่างาม

ในการแสวงหาความเรียบง่ายขั้นสุดยอดมันสร้างขึ้นจากแกนกลางที่เรียบง่ายและสง่างาม - ด้วยคุณสมบัติส่วนใหญ่ที่มีผลผูกพันกับรุ่นของคุณไม่ใช่ตัวควบคุมของคุณ - ซึ่งเป็นสิ่งที่ MVC, WebApi ทำ (เช่นเดียวกับ )

การนำข้อความตามข้อเสนอการออกแบบวิธีการที่เหนือกว่าสำหรับการให้บริการระยะไกลในการที่พวกเขาส่งเสริมการบริการขยายมากขึ้นและเปราะน้อยลงช่วยลดความยุ่งยากในการเข้าถึงและเรียกรูปแบบและมีประโยชน์จากธรรมชาติอื่น ๆ อีกมากมายที่คุณได้รับฟรี

ในฐานะที่เป็นภารกิจหลักเราต่อสู้กับความซับซ้อนในทุกขั้นตอนโดยมีเป้าหมายเพื่อรักษา API ที่มองไม่เห็นและไม่ล่วงล้ำและหลีกเลี่ยงการแนะนำแนวคิดใหม่หรือสิ่งประดิษฐ์ที่ไม่คุ้นเคยกับ. NET หรือนักพัฒนาบริการเว็บในปัจจุบัน

ตัวอย่างIService<T>การใช้งานบริการของคุณเป็นเพียงคลาส C # มาตรฐานที่มีการเชื่อมต่อแบบใช้สายอัตโนมัติ บางและน้ำหนักเบาห่อถูกนำมาใช้เพื่อให้สอดคล้องและ API แบบครบวงจรรอบแกนเวลาทำงานIHttpRequestและIHttpResponseประเภท นอกจากนี้ยังอนุญาตให้เข้าถึงคลาส ASP.NET หรือ HttpListener ของคำขอและการตอบกลับเพื่อให้คุณไม่ถูก จำกัด เมื่อใช้ ServiceStack

ตัดกับ WCF และ WebApi

นี่คือภาพรวมคร่าวๆของรูปแบบ API ตัดกันที่ServiceStack และ WCF ส่งเสริม WebApi นั้นแตกต่างจาก WCF เนื่องจากมันสนับสนุนการออกแบบ REST-ful API ในฐานะที่เป็นตัวอย่างระหว่าง 2 นี้เป็นตัวอย่างที่รู้จักกันเท่านั้นที่ฉันมีกับบริการเดียวกันที่เขียนทั้งในServiceStack และ WebAPI

วิธีปฏิบัติที่ดีที่สุดสำหรับบริการระยะไกล

ServiceStack มุ่งเน้นไปที่ความเรียบง่ายประสิทธิภาพและในการส่งเสริมการปฏิบัติที่ดีที่สุดสำหรับบริการเว็บ / ระยะไกลซึ่งมีศูนย์กลางอยู่ที่การโอบกอดมาร์ตินฟาวเลอร์รูปแบบการออกแบบบริการระยะไกลในรูปแบบสำนวน C #:

  • The Facade Pattern - ซึ่งแนะนำให้ใช้อินเตอร์เฟซแบบหยาบและหยาบเป็นชุดเมื่อคุณสื่อสารข้ามขอบเขตกระบวนการ

  • DTO รูปแบบ ( MSDN ) - เล่าการใช้ POCOs วัตถุประสงค์พิเศษในการสร้างรูปแบบลวดของการตอบสนองบริการเว็บของคุณ

  • แบบเกตเวย์ ( MSDN ) เพื่อการสื่อสารในแค็ปซูไคลเอ็นต์และเซิร์ฟเวอร์ของคุณระหว่างรูปแบบไคลเอ็นต์เกตเวย์ / DTO และชั้นบริการอินเตอร์เฟซ

รูปแบบเหล่านี้ช่วยให้มั่นใจได้ว่ามีการแยกความกังวลและประสบการณ์การทำซ้ำแบบไม่มีแรงเสียดทาน

เพิ่มขีดความสามารถการบริการของคุณ

ServiceStack บริการเว็บที่เป็นแกนหลักอยู่กึ่งกลางIService<T>อินเตอร์เฟสC # ที่ปราศจากการพึ่งพาและอัตโนมัติแบบใช้สายโดยอัตโนมัติซึ่งให้อิสระอย่างสมบูรณ์ในการกำหนดสัญญาบริการเว็บของคุณด้วยคำขอและการตอบสนอง DTO ของคุณเองโดยใช้ POCOs ที่สะอาด - บุกรุกนั่นคือการดึงตรรกะบริการ C # ของคุณออกมาเล็กน้อยและเรียกใช้นอกโฮสต์ ServiceStack

สรุปสาระสำคัญนี้เป็นตัวอย่างที่ดีของสิ่งที่คุณจะได้รับเพียง 1 C # .cs class ใน ServiceStack :

  • หน้าข้อมูลเมตาสำหรับรูปแบบที่ลงทะเบียนทั้งหมด
    • ด้วยลิงก์ไปยังตัวอย่าง WSDL, XSDs และ C #
  • มุมมองรายงาน HTML ที่เป็นมิตรกับมนุษย์
    • สแน็ปช็อตหน้า html ที่มีอยู่ในตัวเดียว (เช่นไม่มีการอ้างอิงภายนอก) รวมการตอบสนองบริการเว็บ JSON แบบฝังตัว - อนุญาตให้เข้าถึงสแน็ปช็อตข้อมูลโดยทางโปรแกรม
  • Mini Profiler ในตัว (พอร์ตของMVC Mini Profilerยอดเยี่ยม)
    • รวมถึงการทำโปรไฟล์ SQL
  • จุดสิ้นสุด JSON / JSONP, XML, JSV, CSV และ SOAP

คลาส RestServiceBase และ ServiceBase มีวัตถุประสงค์เพื่อโฮสต์ตรรกะ C # แบบกำหนดเองของคุณสำหรับการใช้งานที่เป็นไปได้สูงสุดเช่นการออกแบบครั้งแรกของ DTO ช่วยให้สามารถดำเนินการรอการตัดบัญชีและพร็อกซีที่โฮสต์ CQ เดียวกันของคุณ ซึ่งเป็นสิ่งที่เกิดขึ้นเมื่อคุณลงทะเบียนIMessageServiceเช่นโฮสต์ RedisMQและเรียกใช้บริการของคุณผ่าน/asynconewayปลายทาง (เช่นclient.SendOneWay()ใน C ลูกค้า #)

คุณสามารถมอบหมายและสร้างบริการคอมโพสิตได้อย่างง่ายดายโดยใช้base.ResolveService<T>()วิธีที่ส่งกลับอินสแตนซ์แบบใช้สายอัตโนมัติของบริการที่เลือกตามที่เห็นในตัวอย่างบริการลูกค้าของ Nortwind :

var ordersService = base.ResolveService<OrdersService>();
var ordersResponse = (OrdersResponse)ordersService.Get(
    new Orders { CustomerId = customer.Id });

ส่งคืนวัตถุ C # ธรรมดา

สำหรับ ServiceStack ส่วนใหญ่จะทำให้วัตถุ C # เป็นส่วนใหญ่ตามที่คาดไว้นี่คือรายการของชนิดส่งคืนที่เป็นไปได้ ( จากคำตอบนี้ ):

  • วัตถุ DTO ใด ๆ -> ต่อเนื่องเป็น Response ContentType
  • HttpResult, HttpError, CompressedResult (IHttpResult) สำหรับการตอบสนอง HTTP ที่กำหนดเอง

ชนิดต่อไปนี้ไม่ถูกแปลงและเขียนโดยตรงไปยังสตรีมการตอบสนอง:

  • เชือก
  • กระแส
  • IStreamWriter
  • ไบต์ [] - ด้วยประเภทเนื้อหาแอปพลิเคชัน / octet-stream

ตัวอย่างของการสนับสนุนส่วนหัว Custom HTTP สามารถเห็นได้โดยตัวอย่าง CORS นี้ซึ่งคุณสามารถกำหนดค่า HTTP Headers ทั่วโลกหรือบนพื้นฐานต่อการบริการ

รองรับ HTML

มีหลายตัวเลือกสำหรับการกลับมา HTML ใน ServiceStack ที่มีการอธิบายในรายละเอียดที่นี่

รวมถึงข้อความที่เร็วที่สุดและเลขลำดับไบนารีสำหรับ. NET

serializers ยืดหยุ่นและรวดเร็วมีความสำคัญหลักในการ API เพื่อให้แน่ใจว่าเวลาการตอบสนองอย่างรวดเร็วและ API ที่ versionable ซึ่งไม่ทำลายลูกค้าที่มีอยู่ซึ่งเป็นเหตุผลที่ ServiceStack รวมถึงserializers ข้อความที่เร็วที่สุดสำหรับ NETกับตัวเลือก NuGet เพื่อเปิดใช้งาน@marcgravell 's พิธีสาร บัฟเฟอร์ ( เลขลำดับไบนารีที่เร็วที่สุดของ. NET)

ServiceStack ของข้อความซีเรียลไลเซอร์มีความยืดหยุ่นสูงและสามารถทนต่อเวอร์ชันขั้นสูงได้โดยไม่มีข้อผิดพลาด

ประสบการณ์การพัฒนาที่ปราศจากแรงเสียดทานแบบ End-to-End

ลักษณะการให้ความเห็นของ ServiceStack ช่วยให้การบริการ API ของเว็บอย่างรวดเร็วพิมพ์อย่างย่อพร้อมจบด้วยการสนับสนุนในตัวสำหรับการซิงค์ / Async C # /. NETและAsync Silverlight ไคลเอ็นต์โดยไม่ต้องใช้รหัสใด ๆ :

ซิงค์ตัวอย่าง C #

var response = client.Send<HelloResponse>(new Hello { Name = "World!" });

ตัวอย่าง Async C #

client.SendAsync<HelloResponse>(new Hello { Name = "World!" },
    r => Console.WriteLine(r.Result), (r, ex) => { throw ex; });

เนื่องจากเพิ่งส่งคืน JSON ที่แท้จริงจึงมีการใช้กับไคลเอนต์ HTTP อื่น ๆ เล็กน้อยเช่นตัวอย่างไคลเอ็นต์ JS โดยใช้ jQuery :

$.getJSON("http://localhost/Backbone.Todo/todos", function(todos) {
    alert(todos.length == 1);
});

ทดสอบได้สูง

ยี่ห้อ C # /. ServiceClients หุ้นสุทธิอินเตอร์เฟซเดียวกันซึ่งทำให้พวกเขาสูงทดสอบและชนิดถอดเปลี่ยนได้ถึงจุดที่คุณสามารถมีการทดสอบหน่วยเดียวกันยังทำหน้าที่เป็นXML, JSON, JSV บูรณาการทดสอบ

การตรวจสอบและการจัดการข้อผิดพลาดมากมายในตัว

ในภารกิจของตนที่จะมอบประสบการณ์การพัฒนาที่ปราศจาก friciton และสะอาด ServiceStack ยังรวมถึงการตรวจสอบความถูกต้องของการพิมพ์และการจัดการข้อผิดพลาดในตัวโดยการโยน C # Exception หรือใช้การตรวจสอบ Fluent ในตัวเพื่อให้ลูกค้า , เช่น:

try {
    var client = new JsonServiceClient(BaseUri);
    var response = client.Send<UserResponse>(new User());
} catch (WebServiceException webEx) {
    /*
      webEx.StatusCode  = 400
      webEx.ErrorCode   = ArgumentNullException
      webEx.Message     = Value cannot be null. Parameter name: Name
      webEx.StackTrace  = (your Server Exception StackTrace - if DebugMode is enabled)
      webEx.ResponseDto = (your populated Response DTO)
      webEx.ResponseStatus   = (your populated Response Status DTO)
      webEx.GetFieldErrors() = (individual errors for each field if any)
    */
}

เพื่อให้ง่ายต่อการใช้ข้อผิดพลาดใน JavaScript คุณสามารถใช้ไลบรารี่ JavaScript ss-validation.js ที่มีน้ำหนักเบาเพื่อผูกข้อผิดพลาดในการตอบสนองของคุณไปยังเขตข้อมูลฟอร์ม HTML ด้วยรหัสบรรทัดเดียว โครงการตัวอย่าง SocialBootstrapApiยังมีการสาธิตดีของเรื่องนี้

ผสานรวมกับ ASP.NET และ MVC

ServiceStack MVC PowerPackเขียนอีกครั้งและการแก้ไขจำนวนมาก ails ของ ASP.NET และ MVC กับแทนที่มันหมดอำนาจเซสชันและแคช XML ที่กิดขวางให้บริการ ASP.NET กับการดำเนินการทำความสะอาดและการพึ่งพาฟรีของตัวเองของ ICacheClient และ ISession APIs

ServiceStack ยังรวมถึงการรับรองความถูกต้องที่ใหม่กว่าและสะอาดกว่าและรูปแบบการให้บริการอัตโนมัติด้วยจำนวน AuthProviders ที่แตกต่างกันในตัว:

  • ข้อมูลรับรอง - สำหรับการตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้ / รหัสผ่านโดยการโพสต์ไปที่บริการ / รับรองความถูกต้อง / ข้อมูลประจำตัว
  • การรับรองความถูกต้องขั้นพื้นฐาน - การอนุญาตให้ผู้ใช้รับรองความถูกต้องกับการรับรองความถูกต้องเบื้องต้น
  • Twitter OAuth - อนุญาตให้ผู้ใช้ลงทะเบียนและรับรองความถูกต้องกับ Twitter
  • Facebook OAuth - อนุญาตให้ผู้ใช้ลงทะเบียนและรับรองความถูกต้องกับ Facebook

โมดูลการรับรองความถูกต้องเป็นตัวเลือกทั้งหมดและมีอยู่แล้วภายในสะอาด ICacheClient / ISession APIs และ OrmLite ซึ่งช่วยให้การประชุมของคุณจะถูกเก็บไว้ในหน่วยความจำ, Redis หรือ Memcached และข้อมูล UserAuth ของคุณยืนยันใน RDBMS ของ SQLServer, MySql, PostgreSQL เช่นเดียวกับ Redis data-store หรือ InMemory (มีประโยชน์สำหรับการพัฒนา / ทดสอบ)

เอกสารยอดเยี่ยม

ServiceStack เป็นเอกสารที่ดีมากที่มากที่สุดของข้อมูลเกี่ยวกับกรอบการทำงานจะเป็นเจ้าภาพในวิกิพีเดีย GitHub เอกสารสำหรับส่วนอื่น ๆ ของกรอบงาน (เช่น Serializers, Redis, OrmLite) สามารถดูได้ที่servicestack.net/docs/

ServiceStack.Examplesโครงการให้รหัสที่มาสำหรับทุกการสาธิตสด ServiceStack และแม่แบบเริ่มต้นในขณะที่โครงการ SocialBoostsrapApiให้เป็นจุดเริ่มต้นที่ดีของการพัฒนา Backbone.js หน้าเดียวกับ App ServiceStack และ MVC ขึ้นอยู่กับเงินทุน Twitters แม่แบบ

นอกเหนือจากที่กล่าวมาข้างต้นขุมทรัพย์ของข้อมูลยังอยู่ใน Google Groupซึ่งขยายตัวค่อนข้างมากในช่วงไม่กี่ปีที่ผ่านมา

วิ่งได้ทุกที่

ServiceStack เป็น. NET 3.5 framework ที่ทำงานบนโฮสต์ ASP.NET และ HttpListener และสามารถโฮสต์บน. NET หรือ Mono (trivia: www.servicestack.netนั้นใช้พลังงานจาก CentOS / Mono) สิ่งนี้ช่วยให้ ServiceStack เว็บเซอร์วิสของคุณโฮสต์บน:

Windows ที่มี. NET 3.5 และ 4.0

Linux / OSX พร้อม Mono

  • Apache + mod_mono
  • Nginx + MonoFastCGI
  • XSP
  • แอปคอนโซล

พัฒนาด้วยรูปแบบการพัฒนาโอเพ่นซอร์ส

ServiceStack เป็นผู้เชื่อที่แข็งแกร่งของรูปแบบการพัฒนาโอเพ่นซอร์สที่ได้รับการพัฒนาอย่างแข็งขันในการเปิดและได้รับการโฮสต์ภายใต้ใบอนุญาต OSS เสรี (BSD ใหม่) ตั้งแต่เริ่มก่อตั้ง ณ วันนี้มันจะได้รับเงินอุดหนุนจากมากกว่า47 นักพัฒนาและมันกำลังยืนอยู่ที่โครงการ 3 จับตามองมากที่สุด C # บน GitHub

ข้อเสีย

ฉันเชื่อว่าข้อเสียที่ใหญ่ที่สุดจะเหมือนกันสำหรับโครงการ OSS .NET อื่น ๆ ส่วนใหญ่ที่ไม่ได้พัฒนา (หรือแม้กระทั่งระบุว่าเป็นตัวเลือกที่มีอยู่) โดย Microsoft ซึ่งหมายความว่ามันเป็นตัวเลือกแรกที่ไม่ค่อยได้ประเมินกรอบ ผู้ใช้ส่วนใหญ่จะประเมิน ServiceStack เป็นทางเลือกสุดท้ายซึ่งพวกเขาจะผิดหวังกับความเสียดทานและความเปราะบางของ WCF หรือประสิทธิภาพของ Microsoft Stack ที่ต้องการ

ข้อเสนอแนะและทรัพยากรชุมชน

ServiceStack ได้รับการตอบรับเป็นอย่างดีกับข้อเสนอแนะในเชิงบวกให้โดยคนส่วนใหญ่ที่มีการประเมินว่ามันเป็นที่มองเห็นได้จากความเชื่อมั่นในเชิงบวกในกลุ่มทางไปรษณีย์ ขณะที่ในปีนี้@ServiceStackบัญชี Twitter ได้รับการติดตามการกล่าวถึงและข้อเสนอแนะในรายการโปรดของมัน

ทรัพยากรชุมชนหน้าวิกิพีเดียเป็นสถานที่ที่ดีที่จะหาข้อมูลเพิ่มเติมเกี่ยวกับ ServiceStack ในป่าด้วยการเชื่อมโยงไปยังบล็อกโพสต์, pod casts นำเสนอจิสต์และอื่น ๆ


30
ในฐานะคนที่ลองใช้ WCF, webapi และ ServiceStack ตอนนี้ให้ใช้ ServiceStack 1) WCF นั้นซับซ้อนเกินไปโดยไม่จำเป็น มันเก่า "ลองแก้ปัญหาทั้งหมด" delima 2) web-api ใหม่เกินไป รอรุ่นสุดท้าย ไม่แม้แต่จะสนับสนุนการโพสต์ของแบบฟอร์ม muli-part รหัสอยู่ในสถานะของการไหล ฉันจะไม่เรียกใช้แอพเชิงพาณิชย์กับมัน BTW คำถามนี้ไม่ควรปิด
Michael Silver

13
คุณช่วยแก้ไขสิ่งนี้สำหรับ ASP.NET WebAPI ที่เพิ่งเปิดตัวได้ไหม
Blake Niemyjski

26
โปรดทำให้เว็บไซต์ของคุณใช้งานง่ายขึ้น ดูเหมือนว่าเป็นเครื่องมือที่ยอดเยี่ยม แต่เว็บไซต์ของคุณสับสน ไม่มีความชัดเจนว่าโครงการคืออะไรและมีจุดมุ่งหมายในการแก้ไขอย่างไร ในทางตรงกันข้ามคำตอบนี้ยอดเยี่ยม
Kugel

82
สิ่งนี้ดูเหมือนจะไม่เป็นการเปรียบเทียบกับ Web API มากนัก มันสมเหตุสมผลแล้วในขณะที่คำตอบนั้น Web API เป็นแบรนด์ใหม่ นี่ไม่ใช่กรณีอีกต่อไป ฉันชอบที่จะเห็นรายละเอียดที่แท้จริงและฉันกลัวว่าคำตอบนี้ล้าสมัย
George Mauer

35
มันอาจจะคุ้มค่าที่จะชี้ให้เห็นว่า ServiceStack กำลังจะย้ายไปสู่การกระจายเชิงพาณิชย์เท่านั้น / ไบนารี ณ วันที่ v4.0 ดูโพสต์ Google+ของ Demis สำหรับรายละเอียด
Nick Jones

137

มีความแตกต่างหลักใหม่ที่ต้องคำนึงถึง - ServiceStack ไม่มีอิสระในการใช้นับตั้งแต่ v4 เนื่องจากมีคำตอบที่ชัดเจนเกี่ยวกับ SS pro ของฉันต้องการทิ้งสองสามสำหรับ Web API

เว็บ API

ข้อดี :

  1. ฟรีที่จะใช้ในโครงการของคุณ (หากคุณมีใบอนุญาต VS ที่อนุญาตให้ใช้ในเชิงพาณิชย์)
  2. การสนับสนุนระดับสูงฟรีเป็นพิเศษจาก Microsoft และทั่วเว็บรวมถึงที่นี่ใน StackOverflow.com
  3. ผสานรวมกับสแต็คเทคโนโลยีอื่น ๆ ของ Microsoft อย่าง ASP.NET MVC ซึ่งเป็นที่นิยมอย่างมากในร้านค้าของ Microsoft
  4. สร้างขึ้นเพื่อรองรับการรับรองความถูกต้อง RESTful และการอนุญาตใน Microsoft stack ของคุณ

ข้อเสีย:

  1. ไม่รองรับ SOAP

ประโยชน์เสริม

(โปรดอย่าลังเลที่จะแสดงความคิดเห็นด้านล่างเพิ่มว่าทำไมเว็บ API จึงมีประโยชน์หรือมีข้อดี / ข้อเสียที่ฉันสามารถเพิ่มได้)


84
ไม่แน่ใจว่าการไม่สนับสนุน SOAP เป็นข้อ
ผิดพลาด

11
ข้อเท็จจริงที่ว่า MVC และ WebAPI อยู่ร่วมกันเป็นข้อต่อ
Phill

4
ServiceStack v3 ยังคงมีอิสระในการใช้งานและ AFAIK จะเป็นเช่นนี้ตลอดไปฉันไม่คิดว่าสิ่งที่ mythz กล่าวถึงนั้นเป็นเฉพาะ v4
Kyle Gobel

14
ว้าว "ไม่ว่างอีกต่อไป" เป็นการกล่าวเกินจริง $ 999 ต่อนักพัฒนาสำหรับ บริษัท ที่มีพนักงานมากกว่าสิบคน?
Ryan Lundy

7
เหตุผลที่ดีที่สุดของฉันในการเปลี่ยนจาก Service Stack เป็น Web API ก็คือ Service Stack v3 ไม่ได้รับการสนับสนุนบน iOS (โดยใช้ Xamarin) ด้วยความต้องการสถาปัตยกรรม 64 บิตใหม่ แน่นอนการอัพเดทอยู่ใน v4 ซึ่งเป็นเวอร์ชั่นที่ต้องจ่ายเงิน
SgtRock

21

ฉันไม่สามารถพูดอะไรได้มากมายเกี่ยวกับ ServiceStack แต่ Web API มีคุณสมบัติที่ยอดเยี่ยมมากมายและปัจจุบันเป็นเวอร์ชัน 2

บางสิ่งที่คุณสามารถทำได้กับ Web API:

  • โฮสต์ตัวเองในแอปพลิเคชัน OWIN (เช่นทำงานได้ทุกที่)
  • สนับสนุนอย่างเต็มที่สำหรับและasyncawait
  • เทมเพลตเริ่มต้นที่ดีและตัวอย่างโอเพนซอร์ซมากมาย
  • ใช้ Json.Net JSON serializer ที่ยอดเยี่ยม
  • ส่วนที่เหลือเป็นค่าเริ่มต้น (คุณจะต้องทำสื่อสิ่งพิมพ์ด้วยตนเอง)
  • และอื่น ๆ...

1
ทุกอย่างในรายการนี้มีอยู่ใน ServiceStack หรืออาจถูกมองว่าเป็นการต่อต้าน ServiceStack ของ JSON serializer แม้จะได้รับความนิยมน้อยลงเป็นมาก มากเร็วกว่า JSON.NET การสนับสนุนของ OWIN นั้นไม่น่าที่จะนำมาใช้เพราะ @mythz มีความคิดเห็นที่ดีต่อเทคโนโลยีนี้ซึ่งค่อนข้างฟังดู ( ดูความเห็นของเขาเกี่ยวกับคำขอคุณลักษณะนี้ )
ygormutti

3
ดูแพคเกจนักเก็ต OWIN ที่ยังไม่ได้อัปเกรดเนื่องจากมันถูกเผยแพร่เมื่อสามปีที่แล้วฉันไม่เห็นจุดนี้ในโฆษณาทั้งหมดเกี่ยวกับการสนับสนุนของ OWIN ดูเหมือนว่าผู้คนต้องการมี OWIN จริงๆเพราะ Microsoft เคยบอกว่ามันเท่ห์ ไม่เช่นนั้นคุณอาจไม่เคยได้ยินเกี่ยวกับ OWIN เลย ไมโครซอฟท์ทิ้งมันลงในความโปรดปรานของของเล่นใหม่ของพวกเขาเคซึ่งเป็นการลดการโต้แย้ง "ไมโครซอฟท์อยู่เบื้องหลังเรื่องนี้ดังนั้นมันจะมีชีวิตอยู่ตลอดไป" เนื่องจากไมโครซอฟท์มีแนวโน้มที่จะฆ่าโครงการที่ถูกผลักดันอย่างหนัก
Alexey Zimarev

ทำไมต้องตอบถ้าคุณไม่มีประสบการณ์กับ ServiceStack
Brian Ogden

6

ในฐานะลูกค้าของ ServiceStack นี่คือมืออาชีพสำหรับ ServiceStack ที่สำคัญที่สุดสำหรับฉัน

https://github.com/ServiceStack/Issues/issues/606

ดังนั้น. พบข้อผิดพลาดระบุข้อบกพร่องแก้ไขข้อผิดพลาด วันเดียวกัน. การสนับสนุนพิเศษ!


3

เป็นเวลาหนึ่งปีแล้วที่ฉันใช้ SS และมันยอดเยี่ยมมาก ORMLite เป็นเวทมนต์ที่บริสุทธิ์ ฉันสามารถแมปฐานข้อมูล MySQL ที่ยอดเยี่ยมเพื่อรวมเข้ากับแอพมือถือ ไม่มีการเปลี่ยนแปลงในฐานข้อมูลเพราะมันใช้กับแบ็กเอนด์ php กับแอพอื่น ...

Mythz เป็นตัวอย่างเกี่ยวกับการสนับสนุนและคำอธิบาย มันยกระดับความรู้ของฉันเกี่ยวกับการออกแบบแอพและความเรียบง่ายในการบำรุงรักษา โปรดลองและคุณจะเข้าใจ

อย่าเปรียบเทียบ SS กับ WebAPI มันไม่เพียงพอ SS นำมาสู่กล่องเครื่องมือของคุณอีกมากมาย ServiceStack.Text เป็น Automapper ที่ยอดเยี่ยมเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.