Skip to content
mythz edited this page Feb 8, 2011 · 79 revisions

##Service Stack 1.79 Release Notes

The C#/.NET Sync and Async Service Clients were improved to include:

  • Enhanced REST functionality and access, now more succinct than ever
  • Uploading of files to ServiceStack web services using HTTP POST multipart/form-data
  • More robust error handling support handling C# exceptions over REST services
  • For examples of on how to use the C# REST client API check out the tests in the new REST Files project:

New RestFiles project added to ServiceStack.Examples GitHub project:

Live demo available at: servicestack.net/RestFiles/

Read the rest of the Rest Files README.md for a more detailed overview about the project.

Download

.


##Service Stack 1.78 Release Notes

  • Added more tests and fixed bugs in ServiceStack's new CSV format and Request/Response filters

  • Added new information on the generated web service index, individual web service page now include:

    • REST paths (if any are defined) thanks to @jakescott
    • Included directions to consumers on how to override the HTTP Accept header and specify the format
    • Now including any System.CompontentModel.Description meta information attributed on your Request DTO
    • Preview the new documentation pages on ServiceStack Hello and Movies example web service pages.
  • Added tests to show how to implement Basic Authentication using the new RequestFilters

  • Changed the httpHandler paths in the Example projects and created a new Config class to store which supported mappings go with which web servers + middleware.

  • Provide a way to register new urls for different ServiceStack handler mappings used, e.g. to register IIS 6.0 urls:

    SetConfig(new EndpointConfig { ServiceEndpointsMetadataConfig = ServiceEndpointsMetadataConfig.GetForIis6ServiceStackAshx() });
    

##Service Stack 1.77 Release Notes

This release was focused to opening up ServiceStack to better support adding more hooks and extension points where new formats can be added. The CSV format was also added to test these new extension APIs.

Main features added in this release:

  • Added support for the CSV format
  • Enhanced the IContentTypeFilter API to add support for different serialization formats
  • Added Request and Response filters so custom code can inspect and modify the incoming IHttpRequest or IHttpResponse.
  • Added Request.Items so you can share arbitrary data between your filters and web services.
  • Added Request.Cookies for reading cookies (to avoid retrieving it from HttpRuntime.Current)
  • Removed the preceding UTF8 BOM character to ServiceStack's JSON and JSV Serializers.
  • All features above are available on both ASP.NET and HttpListener hosts

Using the same tech that makes ServiceStack's JSV and JSON serializers so fast (i.e. no run-time reflection, static delegate caching, etc), should make it the fastest POCO CSV Serializer available for .NET.

The 'CSV' format is the first format added using the new extensions API, which only took the following lines of code:

//Register the 'text/csv' content-type and serializers (format is inferred from the last part of the content-type)
this.ContentTypeFilters.Register(ContentType.Csv,
	CsvSerializer.SerializeToStream, CsvSerializer.DeserializeFromStream);

//Add a response filter to add a 'Content-Disposition' header so browsers treat it as a native .csv file
this.ResponseFilters.Add((req, res, dto) =>
	{
		if (req.ResponseContentType == ContentType.Csv)
		{
			res.AddHeader(HttpHeaders.ContentDisposition,
				string.Format("attachment;filename={0}.csv", req.OperationName));
		}
	});

With only the code above, the 'CSV' format is now a first-class supported format which means all your existing web services can take advantage of the new format without any config or code changes. Just drop the latest ServiceStack.dlls (v1.77+) and you're good to go!

Note: there are some limitations on the CSV format and implementation which you can read about on the ServiceStack CSV Format page.

Request and Response Filters:

The Request filter takes a IHttpRequest, IHttpResponse and the Request DTO: List<Action<IHttpRequest, IHttpResponse, object>> RequestFilters { get; }

The Response filter takes a IHttpRequest, IHttpResponse and the Response DTO: List<Action<IHttpRequest, IHttpResponse, object>> ResponseFilters{ get; }

Note: both sets of filters are called before there any output is written to the response stream so you can happily use the filters to authorize and redirect the request. Calling IHttpResponse.Close() will close the response stream and stop any further processing of this request.

Feel free to discuss or find more about any of these features at the Service Stack Google Group

<Wiki Home



  1. Getting Started
    1. Create your first webservice
    2. Your first webservice explained
    3. ServiceStack's new API Design
    4. Designing a REST-ful service with ServiceStack
    5. Example Projects Overview
  2. Reference
    1. Order of Operations
    2. The IoC container
    3. Metadata page
    4. Rest, SOAP & default endpoints
    5. SOAP support
    6. Routing
    7. Service return types
    8. Customize HTTP Responses
    9. Plugins
    10. Validation
    11. Error Handling
    12. Security
  3. Clients
    1. Overview
    2. C# client
    3. Silverlight client
    4. JavaScript client
    5. Dart Client
    6. MQ Clients
  4. Formats
    1. Overview
    2. JSON/JSV and XML
    3. ServiceStack's new HTML5 Report Format
    4. ServiceStack's new CSV Format
    5. MessagePack Format
    6. ProtoBuf Format
  5. View Engines 4. Razor & Markdown Razor
    1. Markdown Razor
  6. Hosts
    1. IIS
    2. Self-hosting
    3. Mono
  7. Security
    1. Authentication/authorization
    2. Sessions
    3. Restricting Services
  8. Advanced
    1. Configuration options
    2. Access HTTP specific features in services
    3. Logging
    4. Serialization/deserialization
    5. Request/response filters
    6. Filter attributes
    7. Concurrency Model
    8. Built-in caching options
    9. Built-in profiling
    10. Messaging and Redis
    11. Form Hijacking Prevention
    12. Auto-Mapping
    13. HTTP Utils
    14. Virtual File System
    15. Config API
    16. Physical Project Structure
    17. Modularizing Services
    18. MVC Integration
  9. Plugins 3. Request logger 4. Swagger API
  10. Tests
    1. Testing
    2. HowTo write unit/integration tests
  11. Other Languages
    1. FSharp
    2. VB.NET
  12. Use Cases
    1. Single Page Apps
    2. Azure
    3. Logging
    4. Bundling and Minification
    5. NHibernate
  13. Performance
    1. Real world performance
  14. How To
    1. Sending stream to ServiceStack
    2. Setting UserAgent in ServiceStack JsonServiceClient
    3. ServiceStack adding to allowed file extensions
    4. Default web service page how to
  15. Future
    1. Roadmap

Clone this wiki locally