Mono使用日志(2)
Mono使用日志(1)
6月16日,Mono 1.1.8发布了.Mono 1.1.8 是Mono发展到现在的第八个版本.
从1.1.1到1.1.2 ……再一直到现在, Mono 1.1.x series 最终将会通往下一个稳定的版本:Mono1.2,期待这一里程碑的到来!不过1.1.8版本对于大多数开发者来说,已经足够稳定了
Mono官方网站上介绍1.1.8增加了以下新的特性:
Building with Visual Studio
Visual Studio solution to build Mono runtime natively on Windows. This is useful if you are embedding the Mono runtime into your application and want to debug and single step inside Mono.
Debugger
The Mono Debugger is being released in sync for the first time with the Mono runtime. We need testers to try it out (the command line debugger is called `mdb').
Windows.Forms
Here a toplevel list of all things new for 1.1.8 MWF:
- DomainUpDown and NumericUpDown implemented
- First version with DataGrid support (still incomplete)
- First version with MDI support (still incomplete)
- Drag & Drop implemented for X11 and Win32
- Clipboard implemented for X11 and Win32
- HelpProvider implemented
- ErrorProvider implemented
- Cursor class completed
- ResXWriter and ResXReader completed
- SWF.Timers now working properly
- A bunch of compatibility fixes
- Image I/O now working on Win32 (this is actually in System.Drawing)
Scaling, Performance
Harinath has been fine tuning our Regular Expressions class library to reduce allocations which translate into an increase in performance (about 10% on the output match). Regexp.Replace will now be O(number of $s in the replacement string) instead of O(length of replacement string). The
The 1024 limit on Socket.Select is gone, Mono will now use poll when available.
System.Web will consume less memory as well (Gonzalo).
Code Access Security
Sebastien's progress in this release:
- AppDomain based sandboxes are supported (limited by #74411);
- Stack propagation for async code, threads and SWF;
- Default policies (like LocalIntranet, Internet...) are now supported;
The new features allows NRobot 0.20 (http://home.gna.org/nrobot/) to "work" (as much as the permissions are currently present in the class libraries) on Mono 1.1.8 with a single modification (change the imperative assert in NRobot/Engine/GameArena.cs to a declarative assert).
ASP.NET 2.x controls
Lluis completed various new controls for ASP.NET 2.x: ImageMap, Wizard, SiteMapDataSource and SiteMapPath.
Reflection
Lluis added support for producing debugging information from Reflection.Emit. This means that all the Reflection-based compilers and VMs will be able to produce debugging information and have the Mono debugger step through the code.
Packaging
mono-ikvm has been merged into mono-core. Should make it easier for people to get ikvm
mono-nunit is back with the nunit stuff. Needed for mono-tools
Mono-shlib-cop
Jonathan Pryor has contributed this tool to assist developers that use P/Invoke.
mono-shlib-cop is a tool that inspects a managed assembly looking for erroneous or suspecious behavior of shared libraries.
The tool takes one or more assembly filenames, and inspects each assembly specified.
The errors checked for include:
- Does the shared library exist?
- Does the requested symbol exist within the shared library?
It also checks if a program uses shared libraries that are part of a -devel package.
VB.NET
New on this release: late binding, decimal, named arguments, optiona byrefs,
Mono.Unix
The Mono.Unix namespace will be replacing the old Mono.Posix in Mono 1.2 and is still under development. In this release cleanups continued and a few new features are present.
Changes since the last release:
- Removed types: MapAttribute, IncludeAttribute, ErrorMarshal, ErrorMarshal.ErrorTranslator
Additions
- Syscall.execv(), Syscall.execve(), Syscall.execvp(), Syscall.fexecve()
- Syscall.fcntl (int, FcntlCommand, DirectoryNotifyFlags)
- Syscall.mmap, Syscall.munmap, Syscall.msync, Syscall.mlock, Syscall.munlock, Syscall.mlockall, Syscall.munlockall, Syscall.mremap, Syscall.mincore, Syscall.remap_file_pages
- Syscall.mkstemp
- Thread safety for "obvious" exports from Stdlib, Syscall
- UnixConvert.ToOctalPermissionString, UnixConvert.FromUnixPermissionString, UnixConvert.ToUnixPermissionString
- UnixFileInfo uses stat(2) now, not lstat(2), so a UnixFileInfo created on a symlink will give information about the target, not the link.
Lots of documentation added
JScript
Cesar implemented access to local variables in nested functions in JScript.
Bug fixes, scalability
There are plenty of bug fixes, performance and scalability improvements that are too detailed to list on the release notes.
下面说一下Mono的安装过程:
NO.1 Linux下:
下载安装包: http://go-mono.com/sources/mono-1.1/mono-1.1.8.tar.gz
----------------------------------------------------------
$ tar xzf mono-1.1.8.tar.gz
$ cd mono-1.1.8
$ ./configure
$ make
$ make install
----------------------------------------------------------
OK!
NO.2 Windows下:(2000及以上)
下载地址:http://www.go-mono.com/archive/1.1.8/windows/mono-1.1.8-gtksharp-1.9.5-win32-0.0.exe
下图为安装好后的Mono Command Prompt我的是1.1.7