[Mono-dev] Landing: System.Web

Miguel de Icaza miguel at novell.com
Fri Aug 26 00:08:50 EDT 2005


    Just a heads up: tomorrow we will disable the System.Web directory
from compilation for a few hours as we land some fairly large changes to
it.  We hope to complete the merging tomorrow, but if something goes
wrong we might spend some time over the weekend.

    The new version of System.Web to be landed contains:

	* Tests: 67,700 lines of new tests:

		* NUnit test suite for about 50% of the controls.

		* standalone tests.

	* JSUnit: a new JavaScript unit test framework to automate
	  running the tests for various web controls and validate
	  that they do the right thing.

	  Similar in spirit to NUnit, but for web pages.

	* Unmanaged I/O: the new implementation uses unmanaged buffers
	  for uploads (HTTP POST for example) and content generation
	  as opposed to the managed buffers that we have today, which
	  greatly reduces the pressure on Mono's GC and also avoids
	  redundant copies of data by sharing buffers as much as 
	  possible improving performance.

	* Use of TCP Cork on Linux to avoid TCP glitches and delays,
	  this reduces the latency to get a full page.

	* Support for Linux sendfile to transfer static pages (support
	  for more platforms will come later).

	* XSP now transfers Socket ownership to the AppDomain to 
	  avoid round trips and expensive AppDomain boundary crossing
	  increasing performance.

	* New controls: about 40% of the existing controls were
	  rewritten from scratch with test suites to validate their

	* New application pipeline: a new iterators-based design
	  reduces the complexity and increases the maintainability
	  of the old version.  

	* Support for HttpClientCertificate on XSP, soon to come
	  to Apache.

	* Improved tracing support.

    Latency has been reduced in various key places and the new unmanaged
buffers accelerate the processing of medium and large sized pages (small
pages remain about the same speed) and large uploads wont disrupt your
Mono process.


More information about the Mono-devel-list mailing list