80:
53:
148:
22:
659:
can be established that a framework - in my opinion and others - is bigger than just a file or 2. API's are framworks. I believe there is no such thing as CSS frameworks for instance. In software development i believe there are more frameworks than in web development, but the distinction is important to help avoid the confusion that all these discussions are about. --
812:
with respect, i think your assumption is not correct. The word frame in the software development context most commonly refers to a graphic component used in a UI definition, or is used when describing the time frame applicable to an objects existance in a system or other such abstract "discussions".
719:
The difference between a library and a framework is that a framework implements inversion of control (the
Hollywood Principle - Don't call us, we'll call you). When using a library you have to write code to call its components, but when using a framework it has components which call the code that you
586:
Hi Travb. Your concern about the old definition is warranted. I've replaced it with a definition that is agreed to by the academic community and cited two of their experts (Ralph
Johnson and Dirk Riehle). It is important to describe both the similarities to and differences from code libraries, and
866:
What is the origin of the term? What was the first framework? Does ANSI, ISO, or any other standards body define the term? A framework is a conceptual or physical structure. That term can be applied to software in a lot of ways. There's no real benefit to trying to create a strict definition of
658:
I believe it is important not to use the word framework about whatever. Alot of re-usable code for web development isnt a framework simple snippets or some of them libraries. The word should be used with care. I believe it is good to start a topic about "Frameworks compared to libraries" so that it
816:
When you say "holds the software together" i think you mean "provides a structure into which application specific code is inserted" ... or something like that, yes? Just 'cause "software" is such a general term generally meaning "application" and a framework does not define an application, it just
862:
It's clear that there really is no steadfast definition of software framework and the authors here are trying to create one as though this article is the source of academic truth. There are no citations that support the actual definition being proposed. For example, it declares that a framework
295:
Somewhere I found the following distinction between framework and library: Some piece of pre-packaged code is a library if it is designed to be called by your code; it is a framework if it is designed to call your code. Is that an acceptable distinction? If so, it might go into the article, which
449:
Question: I see two different aspects of a framework: the *conceptual* design of the components and how they interact, ithu athu onnlu illange and the actual software that supports this conceptual design. In my opinion they are different, since there can be multiple implementations of the same
318:
I've been looking a bit at the various software framework articles, trying to make sense of them. I'm not the first, but I'd like to work on making some sense of these concepts for readers. There is a lot of duplication between the various framework pages, and it would be nice if these could be
631:"The idea is that all of the tedious, low-level details of creating a web application are already in a reusable package. For a web developer, this means you can spend your time worrying about specific problems related to your application, and not the actual building of the code behind it."
587:
the new intro paragraph does this too. I have good intentions of making more cleanups on this article. I'm fairly expert in this area myself -- I have a phd in software engineering from CMU and wrote my dissertation on a new technique to specify software frameworks. Regards, George.
754:
I noticed on the entry for
Callback (computer programming); there is no mention of frameworks there . and on this page, Callback is not identified as being the functions used by the Hollywood_Principle . (that use may be specific to Microsoft culture).
450:
framework. It seems that the term "software framework" currently refers to both. Are there actually conventional terms to refer to the different concepts, or do different people just have different ideas about what to call it?
917:
This articles contains very java/OOP specific language (use of "method" over "function," references to design patterns). This may confuse readers or cause them to think that a framework is an inherently object oriented concept.
796:
I assume that a framework is a frame. I think that that should be stated explicitly and the definition should be built upon that. A framework is something that other software is built upon and that holds the software together.
863:
must have "Inversion of
Control". Based on what? The citation is an article that defines "inversion of control" but doesn't really cite a source as to where that even is a requirement other than in the author's own mind.
274:
I've thought that
Application Framework is a Software Framework, designed and developed for a particular Application. Software framework is broader in a sense that include third party frameworks. I could be wrong.
577:
Deutsch, P. L. (1989). Design reuse and frameworks in the
Smalltalk-80 system. Software reusability, volume II: applications and experience. T. J. Biggerstaff and A. J. Perlis. Reading, MA, Addison-Wesley:
246:
Completely agreed. This article borders on being completely meaningless because it does very little to define before it attempts to discuss its merits or application as a concept. Poor! (11 April 2013)
431:
There is a difference between a CMS and a CMF. A framework will help one create a system that suits the user's needs. A system is the end product. The difference is in flexibility and ease of use.
777:
The text "unless the software is a compiler-object linker" doesn't make sense to me. Is it possible the author meant "uses a" instead of "is a"? And does "wholly controlled" mean independent?
439:
is a CMS. The best way to organize the list is to put the two on the same level in the hierarchy. A CMF is not better than a CMS nor should one be a 'container' of the other. --
419:
I'd like to start by creating categories for these frameworks, and maybe one of those section headers. I'll probably start this in the next day or two if no one beats me to it.
329:
I would like to propose a taxonomy that I'd like to start referencing in the various software framework articles. This is what I've found so far from my initial searching.
609:
an abstraction. As it stands the text is inconsistent about this. The specific properties mentioned (such as IoC) are not necessary properties of frameworks in general.
233:
592:
878:
678:
461:
961:
634:
I thought a software framework was independent of the application (web, desktop, etc.) for example MFC is a software framework not intended for web development.
902:
301:
782:
919:
269:
749:
506:
472:
The taxonomy looks good, but expect some overlap. It's ok for media to be seen a subset of software, and for software to be seen as a subset of media.
440:
596:
138:
422:
I'd also like to ensure that all
Wikipedians work together on this, so I will try to post links to this discussion on talk pages on other talk pages.
898:
547:
215:
305:
778:
767:
691:
Microsoft calls .Net a framework. I think that is wrong. Microsoft is really bad about the terminology they use, so much so as to seem arrogant.
867:
what can be called a software framework. If it provides some sort of structure for developing software, it can be called a software framework.
290:
906:
835:
481:
705:
So when you say "re-usable code for web development" I assume you are primarily referring to .Net and I agree that ".Net
Framework" is wrong.
551:
618:
543:
500:
211:
946:
841:
465:
128:
956:
927:
443:
162:
889:
I agree it's not appropriate for a
Knowledge article to just try to make up its own definition of the term. There is one already in
882:
426:
286:, it is not clear what is the difference between the two. If those are the same, or simular it should be stated, or may be merged.
237:
941:
951:
849:
806:
756:
743:
724:
where an abstract class containing default behaviour is provided by the framework and a subclass provides custom behaviour.
200:
714:
700:
874:
831:
674:
457:
264:
104:
682:
310:
256:
248:
897:
also giving a definition of the term. I don't see why we can't just take those, at least as a reputable starting point.
912:
648:
739:
568:
Johnson, R. E. and B. Foote (1988). “Designing reusable classes.” Journal of object-oriented programming 1(2): 22-35.
219:
971:
857:
87:
58:
966:
791:
157:
63:
786:
628:
Why is a software framework related only to web development? It´s what one understands from the introduction:
653:
367:
33:
371:
535:
410:
358:
196:
825:
623:
179:
103:
on
Knowledge. If you would like to participate, please visit the project page, where you can join
923:
735:
721:
260:
252:
21:
100:
353:
279:
229:
39:
813:
I will happily agree with your contention if you could please expand a bit on what you mean?
870:
802:
727:
710:
696:
670:
588:
477:
453:
343:
192:
188:
757:
http://social.msdn.microsoft.com/Forums/en/clr/thread/7711d8de-68e8-4644-b10b-252f55528bed
8:
821:
763:
326:
with this page (well, the software bits anyways), and I'd like to continue by using the
664:
644:
390:
362:
338:
283:
890:
184:
Marking this for cleanup because it's almost unreadable--and I'm a software engineer!
731:
496:
243:
What is the intended reading audience for this article as it appears in Knowledge?
798:
772:
706:
692:
605:
an abstraction, it is a set of software libraries and perhaps accompanying tools
473:
423:
297:
759:
601:
The first paragraph as it stands now is still a mess! A software framework is
524:
487:
935:
845:
660:
640:
614:
416:
Some of these pages may warrant "List of..." and "Comparison of..." pages.
492:
287:
527:
and the way their instances collaborate for a specific type of software.
348:
333:
323:
96:
520:
312:
147:
92:
79:
52:
894:
610:
394:
820:
humm that this talk was last used in 2015 is a bit telling —
436:
255:) 19:14, 11 April 2013 (UTC)Professional information scientist
402:
226:
406:
398:
432:
523:
system (or subsystem). This is expressed as a set of
531:With a version of the first few sentences of this:
296:
doesn't seem to make any distinction at the moment.
91:, a collaborative effort to improve the coverage of
389:be built on upper layers, with the exception of a
933:
962:Start-Class software articles of Mid-importance
270:Software framework and Application framework
750:Callback as synonym for Hollywood_Principle
637:Deleting the "web" word in that paragraph.
540:Which is infinitely easier to understand.
507:Revisions to intro paragraph and definition
409:, an application server with an associated
227:https://en.wikipedia.org/Software_framework
19:
934:
720:write. This is achieved by using the
397:(a Multimedia framework) is based on
385:Each inner point is a specialty that
85:This article is within the scope of
15:
38:It is of interest to the following
13:
667:) 22:26, 22 August 2008 (UTC) rr
146:
14:
983:
947:Mid-importance Computing articles
957:Mid-importance software articles
817:participates in its realization.
78:
51:
20:
133:This article has been rated as
113:Knowledge:WikiProject Computing
942:Start-Class Computing articles
571:
562:
116:Template:WikiProject Computing
1:
952:Start-Class software articles
895:another publication from 1988
768:03:15, 22 February 2011 (UTC)
683:05:47, 26 February 2009 (UTC)
238:01:43, 23 February 2024 (UTC)
155:This article is supported by
107:and see a list of open tasks.
928:17:18, 3 December 2021 (UTC)
836:04:25, 3 December 2017 (UTC)
787:19:25, 4 February 2015 (UTC)
501:20:16, 2 February 2008 (UTC)
482:18:48, 16 January 2008 (UTC)
444:19:48, 22 October 2007 (UTC)
401:(a software framework), and
368:Content management framework
7:
519:is a reusable design for a
466:18:14, 8 January 2008 (UTC)
291:17:52, 30 August 2006 (UTC)
10:
988:
913:Java/OOP specific language
907:02:27, 22 March 2020 (UTC)
893:, which in turn is citing
883:12:33, 17 April 2018 (UTC)
552:14:11, 31 March 2008 (UTC)
427:05:10, 11 April 2007 (UTC)
372:Content management systems
278:Reading the two articales
265:19:14, 11 April 2013 (UTC)
220:14:04, 31 March 2008 (UTC)
139:project's importance scale
744:10:39, 11 June 2020 (UTC)
649:20:17, 2 April 2008 (UTC)
411:Web application framework
359:Web application framework
306:20:42, 3 April 2008 (UTC)
154:
132:
73:
46:
807:18:08, 25 May 2015 (UTC)
715:18:10, 25 May 2015 (UTC)
701:18:08, 25 May 2015 (UTC)
619:10:15, 26 May 2011 (UTC)
597:00:48, 28 May 2008 (UTC)
322:I've started by merging
206:10:55, 19 November 2004
858:Definition of Framework
850:05:17, 7 May 2023 (UTC)
722:Template Method Pattern
972:All Computing articles
792:A framework is a frame
151:
101:information technology
28:This article is rated
967:All Software articles
354:Application framework
280:Application framework
150:
88:WikiProject Computing
654:Framework VS Library
405:(a CMS) is based on
344:Multimedia framework
158:WikiProject Software
311:Software framework
517:software framework
491:is another one. --
391:Software framework
363:Application server
339:Software framework
319:unified somewhat.
284:Software framework
152:
119:Computing articles
34:content assessment
885:
873:comment added by
840:Telling of what?
746:
730:comment added by
673:comment added by
511:I replaced this:
468:
456:comment added by
205:
191:comment added by
177:
176:
173:
172:
169:
168:
979:
868:
725:
685:
624:Web development?
579:
575:
569:
566:
525:abstract classes
451:
230:MilkWeed4daQueen
210:still terrible.
204:
185:
180:Cleanup required
121:
120:
117:
114:
111:
82:
75:
74:
69:
66:
55:
48:
47:
31:
25:
24:
16:
987:
986:
982:
981:
980:
978:
977:
976:
932:
931:
915:
891:Schmidt's paper
860:
794:
775:
752:
668:
656:
626:
589:Georgefairbanks
584:
583:
582:
576:
572:
567:
563:
509:
393:. For example,
316:
272:
193:Minority Report
186:
182:
118:
115:
112:
109:
108:
67:
61:
32:on Knowledge's
29:
12:
11:
5:
985:
975:
974:
969:
964:
959:
954:
949:
944:
914:
911:
910:
909:
875:24.118.147.229
859:
856:
855:
854:
853:
852:
818:
814:
793:
790:
774:
771:
751:
748:
675:61.109.169.125
655:
652:
625:
622:
581:
580:
570:
560:
559:
555:
538:
537:
529:
528:
508:
505:
504:
503:
488:Ajax framework
484:
458:128.105.167.39
448:
383:
382:
381:
380:
379:
378:
377:
376:
375:
374:
351:
346:
315:
309:
271:
268:
241:
240:
223:
222:
181:
178:
175:
174:
171:
170:
167:
166:
163:Mid-importance
153:
143:
142:
135:Mid-importance
131:
125:
124:
122:
105:the discussion
83:
71:
70:
68:Mid‑importance
56:
44:
43:
37:
26:
9:
6:
4:
3:
2:
984:
973:
970:
968:
965:
963:
960:
958:
955:
953:
950:
948:
945:
943:
940:
939:
937:
930:
929:
925:
921:
920:ABuzzedWhaler
908:
904:
900:
896:
892:
888:
887:
886:
884:
880:
876:
872:
864:
851:
847:
843:
839:
838:
837:
833:
830:
827:
823:
819:
815:
811:
810:
809:
808:
804:
800:
789:
788:
784:
780:
770:
769:
765:
761:
758:
747:
745:
741:
737:
733:
729:
723:
717:
716:
712:
708:
703:
702:
698:
694:
689:
686:
684:
680:
676:
672:
666:
662:
651:
650:
646:
642:
638:
635:
632:
629:
621:
620:
616:
612:
608:
604:
599:
598:
594:
590:
574:
565:
561:
558:
554:
553:
549:
545:
541:
536:
534:
533:
532:
526:
522:
518:
514:
513:
512:
502:
498:
494:
490:
489:
485:
483:
479:
475:
471:
470:
469:
467:
463:
459:
455:
446:
445:
442:
438:
434:
429:
428:
425:
420:
417:
414:
412:
408:
404:
400:
396:
392:
388:
373:
369:
366:
365:
364:
360:
357:
356:
355:
352:
350:
347:
345:
342:
341:
340:
337:
336:
335:
332:
331:
330:
327:
325:
320:
314:
308:
307:
303:
299:
293:
292:
289:
285:
281:
276:
267:
266:
262:
258:
257:132.183.13.16
254:
250:
249:132.183.13.16
244:
239:
235:
231:
228:
225:
224:
221:
217:
213:
209:
208:
207:
202:
198:
194:
190:
164:
161:(assessed as
160:
159:
149:
145:
144:
140:
136:
130:
127:
126:
123:
106:
102:
98:
94:
90:
89:
84:
81:
77:
76:
72:
65:
60:
57:
54:
50:
49:
45:
41:
35:
27:
23:
18:
17:
916:
869:— Preceding
865:
861:
828:
795:
776:
753:
726:— Preceding
718:
704:
690:
687:
657:
639:
636:
633:
630:
627:
607:implementing
606:
602:
600:
585:
573:
564:
556:
542:
539:
530:
516:
510:
486:
447:
441:Flyingmeteor
430:
421:
418:
415:
386:
384:
328:
321:
317:
294:
277:
273:
245:
242:
183:
156:
134:
86:
40:WikiProjects
732:Tonymarston
669:—Preceding
452:—Preceding
370:- See also
361:- See also
187:—Preceding
30:Start-class
936:Categories
899:Psequeirag
799:Sam Tomato
707:Sam Tomato
693:Sam Tomato
557:References
474:Mathiastck
435:is a CMF,
424:Ian Bailey
349:Middleware
298:M palmer45
779:SandStone
760:Wikipaddn
334:Framework
324:Framework
110:Computing
97:computing
93:computers
59:Computing
871:unsigned
832:contribs
740:contribs
728:unsigned
671:unsigned
661:wmasterj
641:Avargasm
521:software
454:unsigned
313:taxonomy
201:contribs
189:unsigned
64:Software
822:vulcan_
773:Linkers
433:CakePHP
395:DirectX
137:on the
578:57-71.
493:Abdull
288:Ervinn
99:, and
36:scale.
437:Mambo
403:Plone
924:talk
903:talk
879:talk
846:talk
826:talk
803:talk
783:talk
764:talk
736:talk
711:talk
697:talk
688:nmb
679:talk
665:talk
645:talk
615:talk
593:talk
548:talk
544:Trav
497:talk
478:talk
462:talk
407:Zope
399:.net
302:talk
282:and
261:talk
253:talk
234:talk
216:talk
212:Trav
197:talk
842:ZFT
603:not
387:may
129:Mid
938::
926:)
905:)
881:)
848:)
834:)
805:)
785:)
766:)
742:)
738:•
713:)
699:)
681:)
647:)
617:)
611:Rp
595:)
550:)
515:A
499:)
480:)
464:)
413:.
304:)
263:)
236:)
218:)
203:)
199:•
165:).
95:,
62::
922:(
901:(
877:(
844:(
829:·
824:(
801:(
781:(
762:(
734:(
709:(
695:(
677:(
663:(
643:(
613:(
591:(
546:(
495:(
476:(
460:(
300:(
259:(
251:(
232:(
214:(
195:(
141:.
42::
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.