Welcome to mirror list, hosted at ThFree Co, Russian Federation.

mono-roadmap.html « web - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 29344af556053dc45fec2a7254738704c1020636 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
<html>
<head><title>Mono Roadmap</title>
<style type="text/css">
h1 {
color: #efefef;
font-size: 18pt;
font-family: "Trebuchet MS";
border: 0;
margin: 0;
padding: 1em;
background: #666666;
}

h2, h3, h4, h5, h6 {
font-family: Verdana,sans-serif;
font-weight: bold;
margin: 9pt;
}

h2, h3 {
font-size: 18px;
}

h2 {
padding: 3px;
color: #000000;
}

h3 {
font-size: 13px;
border-bottom: 2px solid #dddddd;
}

h4 {
border-bottom: 2px solid #dddddd;
}

body, table {
background-color: #ffffff;
font-family: Verdana, sans-serif; font-size: 12px;
color: black;
margin: 0;
padding: 0;
border: 0;
       margin-left: 20%;
       margin-right: 20%;
}

p {
margin-left: 2em;
margin-right: 2em;
}

ul li {
margin-left: 2em;
}

img {
border: 0;
vertical-align: top;
}

</style>
</head>
<body>

<center>
  <h1>
  Mono Project Roadmap
  <br>
  <font size=1>Miguel de Icaza (miguel@ximian.com)</font>
  </h1>
  <p>
</center>

<i>Last update: Jan 18th, 2004</i>

<h3>Introduction</h3>

	<p>This document describes the high-level roadmap for <a
	href="http://www.go-mono.com">Mono</a>.  
	
	<p>The Mono project started in 2001 as an effort to implement
	the .NET Framework to Unix.  To bring both the new programming
	model based on the Common Language Infrastructure and C# as
	well as helping people migrate their existing knowledge and
	applications to Unix. Mono today supports a wide variety of
	operating systems, CPUs and a large chunk of the functionality
	available in the .NET Framework. 
	
	<p>At the October 2003 PDC conference a number of new
	technologies were announced.  From the Mono release schedule
	perspective, we should think about these technologies from
	their release time standpoint, and the features that must be
	supported.

	<p>This document outlines the roadmap for the Mono project
	from my perspective: what we can effectively deliver on the
	dates outlined.  Since Mono is a large open source project,
	things might change and new features can be incorporated
	into the plan if external sources devote enough attention to
	those problems.

	<p>This is the timeline:
	<p>
	<center>
	<img src="roadmap.png">
	</center>
	
<h3>Background</h3>

	<p>So far Microsoft has published two versions of the .NET
	Framework: 1.0 and 1.1, the later with incremental updates to
	the changes in 1.0

	<p>The Mono project has been tracking some of the
	improvements available in those two releases, some of the
	highlights of our work so far are: 

	<ul>
		<li> Core: mscorlib, System, System.Security and
		System.XML assemblies.

		<li> ADO.NET: System.Data and various other database
		providers.

		<li> ASP.NET: WebForms and Web Services are
		supported.  Work on WSE1/WSE2 has also started.

		<li> Compilers: C#, VB.NET and various command line tools
		that are part of the SDK.

		<li> Open Source, Unix and Gnome specific libraries.
	</ul>

	<p>Other components like Windows.Forms, Directory.Services,
	Enterprise Services and JScript are being developed but are not
	as mature as the other components but are under development by
	various people.

	<p>Some other smaller and less used components do not have yet
	a Mono equivalent (System.Management, System.Drawing.Design).

<h3>Mono release strategy</h3>

	<p>The levels of maturity of Mono fluctuate depending on the
	development effort we have put into it, and the use we have
	given to them.  For example, the virtual machine and the C#
	compiler very mature, while less commonly used functionality
	in Mono like Windows.Forms or VB.NET are still under heavy
	development.

	<p>Our strategy is to release the mature components as Mono
	1.0, and have upcoming versions of Mono add extra
	functionality.

<h3>Mono 1.0 goals</h3>

	<p>The Mono 1.0 release would include the following
	components:

	<ul>
		<li>C# compiler.

		<li>VM, with JIT and pre-compiler.
		
		<li>IL assembler, disassembler.

		<li>Development and security tools.

		<li>Core libraries: mscorlib, System, System.XML.

		<li>System.Data and Mono database providers.

		<li>System.Web: Web applications platform and Apache
		integration module.

		<li>System.Web.Services: client and server support.

		<li>System.Drawing.

		<li>System.DirectoryServices

		<li>JIT support: x86, SPARC and PPC architectures
		(interpreter available for other architectures).

		<li>ECMA profiles: special build options to build
		Mono as an implementation of the various ECMA profiles
		will be available.

		<li>Java integration through IKVM.

		<li>Embedding interface for the runtime.
	</ul>

	<p>Packaging:
	
	<ul>
		<li>mono: will contain the above features implementing
		the .NET 1.1 API.

		<li>mono-1.0-compat: Will include a build of the
		libraries with the .NET 1.0 API, this is a
		compatibility build for people running .NET 1.0
		applications. 

		<li>mono-unstable: Will contain a snapshot of the
		other technologies under development for developer's
		convenience, but will be unsupported at this time.
		These include the Generics edition of the C#
		compiler.

		<li>mono-ecma: A build that only includes the ECMA
		components.
	</ul>
	
	<p>Release target: Q2/2004.

	<p>Bug fix releases would be done on a monthly basis.

	<p>For a detailed list, see the <a
	href="mono-1.0.html">mono-1.0 feature list.</a>

<h3>Microsoft's Whidbey</h3>

	<p>To understand post 1.0 editions of Mono, it is important to
	put it into perspective with the Microsoft Whidbey product, to
	be released in 2004.
	
	<p>The new features in the Whidbey release of the .NET Framework
	include:
	
	<ul>
		<li><b>Generic types</b><br>
		These introduce changes to the compiler, runtime and
		class libraries.  

		<li><b>ASP.NET 2</b><br>
		Many tools to simplify web application development:
		Master pages, new controls for common operations,
		personalization and themes.

		<li><b>Remoting</b><br>
		New security channels and version-resistant remoting
		(good news in the interop department).

		<li><b>XML</b><br>
		XQuery debuts on this release as well as an improved
		XmlDocument system based on XPath: XPathDocument.

		<li><b>Networking</b><br>
		FTP client, Ssl streams.

		<li><b>Console and Serial ports:</b></br>
		Console terminal input/output is available as well as
		serial port handling.

		<li><b>Windows.Forms</b><br>
		Layout containers finally appeared on Windows.Forms as
		well as various new controls.

		<li><b>ObjectSpaces</b><br>
		An API for simpler data-base access.
	</ul>

<h3>Mono 1.2</h3>

	<p>The Mono team is developing in parallel some features that
	wont make it to the 1.0 release in stable form.  These will be
	the foundation for the 1.2 release.  The focus of this release
	is to track the core API for the .NET Framework 1.2, but
	again, only a subset of the total framework will be
	available.  

	<p>Mostly, Mono 1.2 consists of components that were not
	stable enough for Mono 1.0, but that would be mature at this
	point, plus the incorporation of some new features from
	Whidbey.  In addition to the Mono 1.0 components, this release
	will add:

	<ul>
		<li>Generic types support: C# compiler, execution
		system and core class libraries.

		<li>ASP.NET 2.0 improvements.

		<li>Remoting improvements from Whidbey.

		<li>System.XML: simpler improvements from Whidbey,
		lacking the large additions (XQuery for example).

		<li>Console and Serial ports support.

		<li>New compilers: VB.NET and JScript support.

		<li>WSE1/WSE2 implementations.

		<li>System.Windows.Forms officially debuts with .NET
		1.0 API;  1.2 API available as an unstable addition.
	</ul>

	<p>This release will by default provide .NET 1.2 APIs, but
	compatibility libraries for 1.0 and 1.1 will be distributed in
	the mono-compat package.  The unstable components of Mono will
	be distributed on the `mono-unstable' package, the libraries
	in this release will be unsupported. 

	<p>Release target: Q4/2004.

<h3>Mono 1.4</h3>

	<p>A refresh update on the Mono 1.2 release containing the
	missing components from the previous release and complete any
	under performing pieces.  Updates to System.Xml, ASP.NET and
	Windows.Forms to match the .NET 1.2 API.

	<p>Release target: Q2/2005.
	
<h3>Peer projects</h3>

	<p>Other projects like the debugger, the documentation
	browser, Java integration through IKVM and Gtk# will remain on
	their own schedules.  This page will be updated to contain
	that information when it becomes available.

<h3>Unscheduled activities</h3>
	
	<p>A missing component of Mono is the Code Access Security
	(CAS).  This functionality is not needed in today's Mono as
	currently Mono is being used to run fully trusted
	applications, and we are not using it on embedded scenarios
	where assemblies would have different trust levels.

	<p>This is an important component, but requires three major
	pieces of work:

	<ul>
		<li>Runtime support for implementing the security
		demands.

		<li>A guidelines document outlining what and where
		must have security demands in place.

		<li>A full audit of our class libraries: method by
		method
	</ul>

	<p>All of these are major pieces of work, and we currently
	have no plans to implement any of those.  A volunteer effort might be
	able to help with the runtime requirements and the document,
	but until those are done, we are unlikely to start doing any
	work on the actual class library audit and instrumentation. 
	
<h3>Mono and WinFX: 2006</h3>

	<p>WinFX is the name given to the new set of libraries that
	makes up .NET in the Longhorn operating system: the existing
	.NET set of class libraries, plus the new functionality
	available in the OS.

	<p>WinFX adds things like storage facilities (WinFS), a
	new versatile communications stack (Indigo) and a new
	eye-candy packed GUI programming system (Avalon).

	<p>Although WinFS, Avalon and Indigo are very exciting
	components, at this time it is too early to tell when those
	components will be available for Mono.  Open source developers
	will very likely start work on these, but since they are still
	far from being officially released, they are not in the radar
	at this point.

<h3>Unsupported technologies</h3>

	<p>Some technologies are very hard to implement or are being
	phased out by components in the Longhorn time frame.  In some
	cases, we feel that they are not crucial to the future of the
	open source desktop.
	
	<p>System.EnterpriseServices and System.Management come to
	mind, and we are unlikely to put any resources into the task.
	We would gladly host the code if someone cares to implement
	it, but they would likely remain unsupported features of Mono.

<h3>Mono Developer Strategy</h3>

	<p>Mono Developers should read the <a
	href="mono-hacking-roadmap.html">Mono Hacking Roadmap</a>
	
<h3>Comments</h3>

	<p>Feel free to send your comments or questions the roadmap to
	<a href="mailto:miguel@ximian.com">miguel@ximian.com</a>


<p>
<i>Last Updated: Nov 1st, 2003</i>