--------- IMPORTANT --------- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Dimeric Software Product Information Rinse TRIAL Version * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Thank you for evaluating Rinse -- we hope you will find it as useful and reliable as we do. If you have any questions or comments, please vist our website... http://www.Dimeric.com/ or send us an email... Support@Dimeric.net Release Notes ------------- 2.1.6 - February 11, 2003 * Rinse Translator (general) - The proxy and skeleton objects now use an underscore prefix for various implementation identifiers. This reduces the chances that a parameter or name or type will conflict with an identifier used internally by Rinse. As far as we know, this has not been a problem yet, but it doesn't hurt to be careful. In Rinse units, please avoid naming types, methods, parameters, etc. with a leading underscore. * Rinse Translator (IDE) - The 'import' directive now searches for files using the Search Path and Library Path settings in the IDE. Here is how Rinse looks for an imported unit: 1) If the unit has been added to the project, then the path is specified in the .DPR. Similarly, if the import directive has an 'in' clause, then this specifies the path. In these cases, it is not necessary to "search" for the file -- either it exists or not. 2) If no path is specified (as in step 1), then Rinse first looks for the imported unit in the same folder as the project file. 3) Next, Rinse looks in the path(s) specified in the Search Path setting (in the Project Options). 4) Finally, Rinse looks in the path(s) specified in the Library Path setting (in the Environment Options). If the imported unit is not found in any of these locations, Rinse raises an error. * Rinse Translator (command-line tool) - The command-line translator (rinse.exe) allows you to specify additional search paths (using the "-i" option). Also, we plan to support the "-d" option, to automatically parse the DCC32.cfg file (for a specified version of Delphi), and add search paths defined there. * DSDataSetPersist - IDataSet objects are now streamed without using a dataset provider. In other words, we don't use MIDAS when streaming a dataset that is not a client dataset. This saves a little space on the network, and also saves a substantial amount of memory on the client and server. * RinseHTTPClient / RinseHTTPServer - The HTTP server side now avoids copying the request and the reply into a memory buffer. Instead, the server uses an IMaxBytesInStream to read the request directly into the local variables of the skeleton. Also, the server writes the var/out/result parameters directly to an IChunkedOutputStream. This conserves memory on the server (where it is critical), but not on the client (where it is not so important). Eventually, we plan to apply the same optimization to the client, with some appropriate safety measures (to avoid altering var/out parameters to contain partially constructed objects). 2.1.5 - January 31, 2003 * Fixed a problem in DSRinseIDE50.bpl: this package would not load in Delphi 5, because the Delphi 6 IDE had added a new property (DesignSIze) to one of the .DFM files that Delphi 5 doesn't understand. This property has been removed. * RinseHTTPClient, RinseHTTPServer - These units have been enhanced to support HTTP 1.1... > Keep the connection alive when possible (according to HTTP 1.1 rules). > Use the ContentType header to identify Rinse requests, and the version of the Rinse protocol. > The server sends an appropriate HTTP response when the request does not have the correct ContentType. > Ping before every request (like the Rinse TCP layer). * RinseTCPClient, RinseTCPServer - The TCP layer is now deprecated in favor of the HTTP layer. The HTTP layer is just as efficient (still uses a binary encoding), as well as being proxy- and firewall-friendly. Houston no longer supports Rinse TCP servers. We are no longer including the TCP layer with Rinse. Please use the HTTP layer instead. 2.1.4 - January 29, 2003 * Initial public release. Getting Started --------------- After you install Rinse, you can use the New Rinse Unit Wizard, File | New | Other | Rinse Unit, to create a new Rinse unit and add it to your project. Also, the Tools | Rinse Explorer command allows you to configure the Rinse Translator (this command can be found on the Help menu in Delphi 5). Documentation ------------- Rinse comes with extensive documentation, as well as an in-depth tutorial (which is the best place to begin). The tutorial can be found in Dimeric\RinseTutorial\Tutorial.rtf. The source code for each step of the tutorial can be found in the folder Dimeric\RineTutorial\Step N, where N is the step number. These projects represent the completed tutorial step, and are ready to compile and run. The Rinse documentation is Dimeric\Doc\Rinse Intro.rtf, and is partly a reference -- the tutorial is a better place to begin. Documentation on the units in RinseLib is located in the Dimeric\Help folder. The install program automatically integrates this help file into Delphi's IDE help system. Deploying Applications Built With Rinse --------------------------------------- You may not distribute any applications or libraries built with the trial version of Rinse. The full version of Rinse features royalty-free application deployment, however this trial version is for evaluation purposes only. You may not use applications and libraries built with this trial version for production purposes. The trial version will expire at the time indicated in the SoftKey. At this time, you must stop using the trial software, or obtain a new SoftKey from Dimeric LLC. See the software license (License.txt) for more information.