-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathroadmap.html
More file actions
318 lines (211 loc) · 11.9 KB
/
Copy pathroadmap.html
File metadata and controls
318 lines (211 loc) · 11.9 KB
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
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<head>
<meta charset="utf-8">
<title>FW/1 Roadmap - FW/1 - The Invisible Framework</title>
<meta name="author" content="Sean Corfield">
<meta name="description" content="FW/1 Roadmap Mar 21st, 2015 This is the latest (3.1 – develop) documentation – for the current stable release, read the 3.0 master …">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="http://framework-one.github.io/documentation/roadmap.html">
<link href="/favicon.png" rel="icon">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<link href="/atom.xml" rel="alternate" title="FW/1 - The Invisible Framework" type="application/atom+xml">
<script src="/javascripts/modernizr-2.0.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="./javascripts/libs/jquery.min.js"%3E%3C/script%3E'))</script>
<script src="/javascripts/octopress.js" type="text/javascript"></script>
<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="//fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
</head>
<body >
<header role="banner"><hgroup>
<h1><a href="/">FW/1 - The Invisible Framework</a></h1>
<h2>Framework One and friends...</h2>
</hgroup>
</header>
<nav role="navigation"><ul class="subscription" data-subscription="rss">
<li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
</ul>
<form action="https://www.google.com/search" method="get">
<fieldset role="search">
<input type="hidden" name="q" value="site:framework-one.github.io" />
<input class="search" type="text" name="q" results="0" placeholder="Search"/>
</fieldset>
</form>
<ul class="main-navigation">
<li><a href="/">Blog</a></li>
<li><a href="/blog/archives">Archives</a></li>
<li><a href="/documentation">Documentation</a></li>
</ul>
</nav>
<div id="main">
<div id="content">
<div>
<article role="article">
<header>
<h1 class="entry-title">FW/1 Roadmap</h1>
<p class="meta">
<time datetime="2015-03-21T14:20:00-07:00" pubdate data-updated="true">Mar 21<span>st</span>, 2015</time></p>
</header>
<p><em>This is the latest (3.1 – develop) documentation – for the current stable release, read the <a href="/documentation/3.0/roadmap.html">3.0 master documentation</a>.</em></p>
<p>Whilst you can read the <a href="https://github.com/framework-one/fw1/issues">FW/1 issues list</a> to see what’s on the cards for future releases, several people have asked that I document things at a higher level so they can get a better sense of what’s coming.</p>
<h2>3.x Integrations</h2>
<p>FW/1 3.1 is currently in development and will be primarily a maintenance release for 3.0. It builds on core 3.0 features:</p>
<ul>
<li>Using DI/1 to manage services and beans</li>
<li>Explicitly calling services in the <code>item()</code> controller methods</li>
</ul>
<p>FW/1 3.0 bundles DI/1 and automatically creates bean factories following the convention of a <code>model</code> folder containing <code>services</code> and <code>beans</code> subfolders. Subsystems also follow this convention and use the main application’s bean factory as a parent to enable sharing of common services across subsystems.</p>
<p>FW/1 3.0 also slims down the framework by removing all of the service queue machinery and the start/end variants of controller methods, as well as coalescing all the framework components in a single folder <code>framework</code> (with <code>org.corfield.framework</code> replaced by <code>framework.one</code>).</p>
<h2>2.5 Deprecations</h2>
<p>FW/1 2.5 represented a large shift from 2.2.1 and deprecated a number of long-standing features that were removed in 3.0:</p>
<ul>
<li>Service queue – implicit service calls were disabled in 2.x but still supported for backward compatibility with 1.x, but in 2.5 the whole service queue machinery is deprecated, including the <code>service()</code> call, and will be removed in 3.0.</li>
<li><code>startItem()</code> / <code>endItem()</code> controller methods – these were originally introduced to encourage a clean separation of controller logic from (queued) service logic. With the service queue going away, they make no sense, so they are deprecated in 2.5 and will be removed in 3.0.</li>
<li>Global access to the <code>rc</code> variable – this was never really intended to be supported but some users found it convenient and started to rely on it. Due to edge case bugs, and the fact that there are better ways to manage the <code>rc</code> in the lifecycle, global access is deprecated in 2.5 and will be removed in 3.0. This will mostly affect users who update the <code>rc</code> in <code>setupRequest()</code> – logic which should generally be moved to <code>Application.cfc</code> in the global <code>before()</code> controller method.</li>
</ul>
<h2>2.½.2 Release Stream</h2>
<p>This is the previous stable stream. FW/1 2.5 is the last release in that stream. The 2.x versions support Adobe ColdFusion 9.0.1 and later, Lucee 4.5.0 and later, and Railo 3.2.2 and later.</p>
<p>Changes between 1.x and 2.x include:</p>
<ul>
<li>No more implicit service calls</li>
<li>Custom route support</li>
<li>Property-based injection in controllers</li>
<li>Better lifecycle control: layout and view control, abort controllers</li>
<li>Better REST support: render data instead of views, resource packs and regular expressions in routes</li>
<li>Environment control</li>
<li>Application tracing</li>
<li>Automated test suite</li>
</ul>
<h2>1.x Release Stream</h2>
<p>This is the legacy stream. FW/1 1.3 is the most recent legacy version, provided to support older CFML engines (Adobe ColdFusion 9.0.0 and earlier, Railo 3.1.x, Open BlueDragon). FW/1 2.x and 3.x will not run on these older CFML engines. Only critical fixes will be made to the 1.x release stream. Currently no new 1.x releases are planned.</p>
<footer>
<p class="meta">
<time datetime="2015-03-21T14:20:00-07:00" pubdate data-updated="true">Mar 21<span>st</span>, 2015</time>
</p>
</footer>
</article>
</div>
<aside class="sidebar">
<section>
<h1>About FW/1</h1>
<p>FW/1 - Framework One - is a family of small, lightweight, convention-over-configuration frameworks, primarily for CFML. FW/1 itself provides MVC, DI/1 provides dependency injection (a.k.a. inversion of control), and AOP/1 provides aspect-oriented programming features on top of DI/1.</p>
<p>In addition, the family includes cfmljure, an easy way to integrate Clojure code into your CFML application, and a port of FW/1 to Clojure as well as a Leiningen template for creating FW/1 projects in Clojure.</p>
</section>
<section>
<h1>3.1 Documentation (develop)</h1>
<a href="/documentation">Getting Started Guide</a><br />
<a href="/documentation/developing-applications.html">Developing Applications Guide</a><br />
<a href="/documentation/using-aop-one.html">Using AOP/1</a><br />
<a href="/documentation/using-di-one.html">Using DI/1</a><br />
<a href="/documentation/using-subsystems.html">Using Subsystems</a><br />
<a href="/documentation/reference-manual.html">Reference Manual</a><br />
<a href="/documentation/roadmap.html">Roadmap</a><br />
</section>
<section>
<h1>3.0 Documentation (stable - master)</h1>
<a href="/documentation/3.0">Getting Started Guide</a><br />
<a href="/documentation/3.0/developing-applications.html">Developing Applications Guide</a><br />
<a href="/documentation/3.0/using-di-one.html">Using DI/1</a><br />
<a href="/documentation/3.0/using-subsystems.html">Using Subsystems</a><br />
<a href="/documentation/3.0/reference-manual.html">Reference Manual</a><br />
<a href="/documentation/3.0/roadmap.html">Roadmap</a><br />
</section>
<section>
<h1>3.5 Documentation (upcoming - clojure)</h1>
<a href="/documentation/3.5">Getting Started Guide</a><br />
<a href="/documentation/3.5/developing-applications.html">Developing Applications Guide</a><br />
<a href="/documentation/3.5/using-aop-one.html">Using AOP/1</a><br />
<a href="/documentation/3.5/using-di-one.html">Using DI/1</a><br />
<a href="/documentation/3.5/using-subsystems.html">Using Subsystems</a><br />
<a href="/documentation/3.5/reference-manual.html">Reference Manual</a><br />
<a href="/documentation/3.5/roadmap.html">Roadmap</a><br />
</section>
<section>
<h1>Recent Posts</h1>
<ul id="recent_posts">
<li class="post">
<a href="/blog/2015/07/07/fw1-3-1-rc-2/">FW/1 3.1 Release Candidate 2 Available!</a>
</li>
<li class="post">
<a href="/blog/2015/06/28/fw1-3-1-rc-1/">FW/1 3.1 Release Candidate 1 Available!</a>
</li>
<li class="post">
<a href="/blog/2015/06/20/fw1-3-1-beta-2/">FW/1 3.1 Beta 2 Available!</a>
</li>
<li class="post">
<a href="/blog/2015/05/14/fw1-3-1-beta-1/">FW/1 3.1 Beta 1 Available!</a>
</li>
<li class="post">
<a href="/blog/2015/05/09/fw1-2-5-1-2-2-2-important/">FW/1 2.5.2 & 2.2.3 - Important Updates!</a>
</li>
<li class="post">
<a href="/blog/2015/05/09/fw1-3-0-1-important/">FW/1 3.0.2 - Important Update!</a>
</li>
<li class="post">
<a href="/blog/2015/03/21/fw1-3-1-begins/">FW/1 3.1 Begins...</a>
</li>
<li class="post">
<a href="/blog/2015/02/24/fw1-3-0-released/">FW/1 3.0 Released!</a>
</li>
<li class="post">
<a href="/blog/2015/02/06/fw1-3-0-rc-2-available/">FW/1 3.0 RC 2 Available</a>
</li>
<li class="post">
<a href="/blog/2015/01/29/lucee-fw1/">Lucee and FW/1</a>
</li>
</ul>
</section>
<section>
<h1>GitHub Repos</h1>
<ul id="gh_repos">
<li class="loading">Status updating...</li>
</ul>
<a href="https://github.com/framework-one">@framework-one</a> on GitHub
<script type="text/javascript">
$(document).ready(function(){
if (!window.jXHR){
var jxhr = document.createElement('script');
jxhr.type = 'text/javascript';
jxhr.src = '/javascripts/libs/jXHR.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(jxhr, s);
}
github.showRepos({
user: 'framework-one',
count: 0,
skip_forks: true,
target: '#gh_repos'
});
});
</script>
<script src="/javascripts/github.js" type="text/javascript"> </script>
</section>
<section>
<a href="https://github.com/seancorfield">@seancorfield</a> on GitHub
</section>
</aside>
</div>
</div>
<footer role="contentinfo"><p>
Copyright © 2015 - Sean Corfield -
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>
</footer>
<script type="text/javascript">
(function(){
var twitterWidgets = document.createElement('script');
twitterWidgets.type = 'text/javascript';
twitterWidgets.async = true;
twitterWidgets.src = '//platform.twitter.com/widgets.js';
document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
})();
</script>
</body>
</html>