اتبع servicestack أو عرض المستندات ، استخدم StackOverflow أو منتديات العملاء للحصول على الدعم.
عرض ملاحظات الإصدار للحصول على أحدث الميزات أو شاهد servicestack.net/features للحصول على نظرة عامة.
Servicestack هو إطار عمل ويب وخدمات ويب للغاية ومتعددة الاستخدامات ومتعددة الاستخدامات ويؤدي إلى نتائج عالية الميزة ، والذي تم تصنيفه بشكل مدروس لتقليل التعقيد الاصطناعي وتعزيز أفضل الممارسات في الخدمات عن بُعد مع تصميم قائم على الرسائل يسمح بأقصى قدر من إعادة الاستخدام التي يمكنها الاستفادة من بوابة الخدمة المتكاملة لإنشاء تعليمية مشروطة بشكل خلفي. يتم استهلاك خدمات ServicEstack عبر مجموعة من تنسيقات البيانات السريعة المدمجة (INC. JSON ، XML ، CSV ، JSV ، Protobuf ، Wire و MSGPACK) بالإضافة إلى مضيفات XSD/WSDL لنقاط الصابون وأرنب MQ و REDIS MQ و Amazon SQS MQ.
يوفر تصميمه وتركيزه البساطة مجموعة لا مثيل لها من ميزات الإنتاجية التي يمكن تمكينها بشكل إعلاني دون رمز ، من إنشاء واجهة برمجة تطبيقات الويب الخاصة بالاستعلام بالكامل مع مجرد طلب مكتوب واحد مع الاستعلام التلقائي الذي يدعم كل RDBMs الرئيسية لجميع مكونات الخدمات المدمجة للخدمات المدمجة.
تعمل خدماتك نفسها أيضًا كوحدة تحكم في مشاهدات Razor الذكية من Servicestack مما يقلل من الجهود المبذولة لخدمة تطبيقات الويب والصفحة الفردية بالإضافة إلى عملاء سطح المكتب الغنيون والجوال القادرين على تقديم تجارب تفاعلية فورية باستخدام أحداث الخادم في الوقت الفعلي في Servicestack.
تعمل خدمات ServicEstack أيضًا على زيادة إنتاجية المستهلكين الذين يوفرون واجهة برمجة تطبيقات فورية مكتوبة بدون كود تمكين تجربة التطوير الأكثر إنتاجية لتطوير .NET إلى .NET Web Services.
تتكامل Servicestack الآن مع جميع IDE الرئيسية المستخدمة لإنشاء أفضل التجارب الأصلية على المنصات الأكثر شعبية لتمكين سير عمل DEV بشكل منتجة للغاية لتستهلك خدمات الويب ، وجعل Servicestack الخيار المثالي للخلفية الخلفية لتشغيل تطبيقات iPhone الغنية والمواطنة على iOS على iOS مع تطبيقات iOS SWIFT و Mobile و Mobile على منصة Android مع Java ، Xamarin.ios ، Xamarin.android ، Windows Store ، WPF ، WinForms و Silverlight:
توفير واجهة برمجة تطبيقات مكتوبة فوريًا لـ C# و TypeScript و F# و VB.NET مباشرة في Visual Studio لأكثر منصات .NET شعبية بما في ذلك iOS و Android باستخدام Xamarin.ios و Xamarin.android على Windows.
توفير أنواع C# الأصلية لتطوير تطبيقات iOS و Android للهاتف المحمول باستخدام Xamarin.IOS و Xamarin.android مع Xamarin Studio على OSX. يوفر المكون الإضافي ServicEstackXS أيضًا تجربة غنية لتطوير خدمة الويب لتطوير تطبيقات العميل مع Mono تطوير على Linux
توفير واجهة برمجة تطبيقات مكتوبة فوريًا في SWIFT بما في ذلك عملاء الخدمة العامة مما يمكّن سير عمل عالي النتائج والاستهلاك دون عناء لخدمات الويب من تطبيقات iOS و OSX الأصلية - مباشرة من داخل XCODE!
توفير واجهة برمجة تطبيقات محلية مكتوبة في Java و Kotlin بما في ذلك عملاء خدمة Java العام الاصطلاحية الذين يدعمون طلبات Sync و Async من خلال الاستفادة من Asynctasks Android لتمكين تطبيقات Java أو Kotlin المتنقلة التي تعمل بالخدمات على نظام Android مباشرةً من منصة Android مباشرة من Android Studio!
يعد البرنامج المساعد ServicEstack Idea قابل للتثبيت مباشرةً من مستودع Intellij المكون الإضافي ويمكّن التكامل السلس مع مشاريع Intellij Java Maven لإنشاء واجهة برمجة تطبيقات مكتوبة للاستهلاك بسرعة وبدون عناء خدمات الويب عن بُعد من عملاء Java أو Kotlin النقي.
تتوفر الإنتاجية التي لا مثيل لها من قبل Java Add Servicestack Reference أيضًا في المكون الإضافي ServiceStackEclipse IDE القابل للتثبيت من سوق Eclipse لتوفير التكامل العميق لمرجع Add Servicestack مع مشاريع Eclipse Java Maven التي تتيح مطورو Java إلى إضافة مرجعية لخدماتها عن بعد.
بالإضافة إلى قائمتنا المتنامية من IDE المدعومة ، فإن برنامج NPM Scripts Servicestack-Cli Crossform يجعل من السهل على خوادم البناء والمهام الآلية والمتسابقين لخط الأوامر من محرري النص المفضل لديك إضافة وتحديث المراجع Servicestack بسهولة!
هذا المثال متاح أيضًا كاختبار تكامل مستقل:
//Web Service Host Configuration
public class AppHost : AppSelfHostBase
{
public AppHost ( )
: base ( "Customer REST Example" , typeof ( CustomerService ) . Assembly ) { }
public override void Configure ( Container container )
{
//Register which RDBMS provider to use
container . Register < IDbConnectionFactory > ( c =>
new OrmLiteConnectionFactory ( ":memory:" , SqliteDialect . Provider ) ) ;
using ( var db = container . Resolve < IDbConnectionFactory > ( ) . Open ( ) )
{
//Create the Customer POCO table if it doesn't already exist
db . CreateTableIfNotExists < Customer > ( ) ;
}
}
}
//Web Service DTO's
[ Route ( "/customers" , "GET" ) ]
public class GetCustomers : IReturn < GetCustomersResponse > { }
public class GetCustomersResponse
{
public List < Customer > Results { get ; set ; }
}
[ Route ( "/customers/{Id}" , "GET" ) ]
public class GetCustomer : IReturn < Customer >
{
public int Id { get ; set ; }
}
[ Route ( "/customers" , "POST" ) ]
public class CreateCustomer : IReturn < Customer >
{
public string Name { get ; set ; }
}
[ Route ( "/customers/{Id}" , "PUT" ) ]
public class UpdateCustomer : IReturn < Customer >
{
public int Id { get ; set ; }
public string Name { get ; set ; }
}
[ Route ( "/customers/{Id}" , "DELETE" ) ]
public class DeleteCustomer : IReturnVoid
{
public int Id { get ; set ; }
}
// POCO DB Model
public class Customer
{
[ AutoIncrement ]
public int Id { get ; set ; }
public string Name { get ; set ; }
}
//Web Services Implementation
public class CustomerService : Service
{
public object Get ( GetCustomers request )
{
return new GetCustomersResponse { Results = Db . Select < Customer > ( ) } ;
}
public object Get ( GetCustomer request )
{
return Db . SingleById < Customer > ( request . Id ) ;
}
public object Post ( CreateCustomer request )
{
var customer = new Customer { Name = request . Name } ;
Db . Save ( customer ) ;
return customer ;
}
public object Put ( UpdateCustomer request )
{
var customer = Db . SingleById < Customer > ( request . Id ) ;
if ( customer == null )
throw HttpError . NotFound ( "Customer '{0}' does not exist" . Fmt ( request . Id ) ) ;
customer . Name = request . Name ;
Db . Update ( customer ) ;
return customer ;
}
public void Delete ( DeleteCustomer request )
{
Db . DeleteById < Customer > ( request . Id ) ;
}
}لا مطلوب من جيل رمز ، يمكن إعادة استخدامه فوق خادم DTOs:
var client = new JsonServiceClient ( BaseUri ) ;
//GET /customers
var all = client . Get ( new GetCustomers ( ) ) ; // Count = 0
//POST /customers
var customer = client . Post ( new CreateCustomer { Name = "Foo" } ) ;
//GET /customer/1
customer = client . Get ( new GetCustomer { Id = customer . Id } ) ; // Name = Foo
//GET /customers
all = client . Get ( new GetCustomers ( ) ) ; // Count = 1
//PUT /customers/1
customer = client . Put (
new UpdateCustomer { Id = customer . Id , Name = "Bar" } ) ; // Name = Bar
//DELETE /customers/1
client . Delete ( new DeleteCustomer { Id = customer . Id } ) ;
//GET /customers
all = client . Get ( new GetCustomers ( ) ) ; // Count = 0يعمل نفس الرمز أيضًا مع عملاء Android و IOS و Xamarin.Forms و UWP و WPF.
يمكن لـ F# و VB.NET إعادة استخدام عملاء خدمة .NET نفسه و DTO's
const client = new JsonServiceClient ( baseUrl ) ;
const { results } = await client . get ( new GetCustomers ( ) ) ; let client = JsonServiceClient ( baseUrl : BaseUri )
client . getAsync ( GetCustomers ( ) )
. then {
let results = $0 . results;
} JsonServiceClient client = new JsonServiceClient ( BaseUri );
GetCustomersResponse response = client . get ( new GetCustomers ());
List < Customer > results = response . results ; val client = JsonServiceClient ( BaseUri )
val response = client.get( GetCustomers ())
val results = response.results var client = new JsonServiceClient ( BaseUri );
var response = await client. get ( GetCustomers ());
var results = client.results; $ . getJSON ( $ . ss . createUrl ( "/customers" , request ) , request , ( r : GetCustomersResponse ) => {
var results = r . results ;
} ) ;باستخدام تعريفات typeScript مع عميل HTTP الزاوي:
this . http . get < GetCustomersResponse > ( createUrl ( '/customers' , request ) ) . subscribe ( r => {
this . results = r . results ;
} ) ; $ . getJSON ( baseUri + "/customers" , function ( r ) {
var results = r . results ;
} ) ;هذا هو كل رمز التطبيق المطلوب لإنشاء واستهلاك خدمة الويب البسيطة التي تدعم قاعدة البيانات!
إذا قمت بتثبيت Nuget ، فإن أسهل طريقة للبدء هي:
أحدث V4+ On Nuget هو إصدار تجاري مع حصص مجانية.
القائمة النهائية لمشاريع المثال ، وحالات الاستخدام ، والعروض التوضيحية ، وقوالب المبتدئين
منذ سبتمبر 2013 ، يتوفر كود المصدر Servicestack بموجب استثناء ترخيص/FOSS Public Record/FOSS ، راجع الترخيص. txt في المصدر. تتوفر أيضًا الترخيص التجاري البديل ، راجع https://servicestack.net/pring للحصول على التفاصيل.
يحتاج المساهمون إلى الموافقة على اتفاقية ترخيص المساهم قبل مراجعة أي رمز ، راجع المستندات المساهمة لمزيد من التفاصيل. يجب أن تشمل جميع المساهمات اختبارات التحقق من السلوك المطلوب.
يتضمن Servicestack رمز المصدر للمكتبات الرائعة أدناه لبعض وظائفها الأساسية. يتم إصدار كل مكتبة بموجب ترخيصها:
اتبع servicestack و +servicestack لتحديثات المشروع.
شكر كبير لجيثب وجميع المساهمين في Servicestack:
تشمل مشاريع مماثلة مفتوحة المصدر .NET لتطوير أو الوصول إلى خدمات الويب: