Share to: share facebook share twitter share wa share telegram print page

Model–view–controller

Diagram of interactions within one possible take on the MVC pattern

Model–view–controller (MVC) is a software design pattern[1] commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:

  • the model, the internal representations of information
  • the view, the interface that presents information to and accepts it from the user
  • the controller, the software linking the two.[2][3]

Traditionally used for desktop graphical user interfaces (GUIs), this pattern became popular for designing web applications.[4] Popular programming languages have MVC frameworks that facilitate the implementation of the pattern.

History

One of the seminal insights in the early development of graphical user interfaces, MVC became one of the first approaches to describe and implement software constructs in terms of their responsibilities.[5]

Trygve Reenskaug created MVC while working on Smalltalk-79 as a visiting scientist at the Xerox Palo Alto Research Center (PARC) in the late 1970s.[6][7][8]: 330 He wanted a pattern that could be used to structure any program where users interact with a large, convoluted data set. His design initially had four parts: Model, view, thing, and editor. After discussing it with the other Smalltalk developers, he and the rest of the group settled on model, view, and controller instead.[6]

In their final design, a model represents some part of the program purely and intuitively. A view is a visual representation of a model, retrieving data from the model to display to the user and passing requests back and forth between the user and the model. A controller is an organizational part of the user interface that lays out and coordinates multiple Views on the screen, and which receives user input and sends the appropriate messages to its underlying Views. This design also includes an Editor as a specialized kind of controller used to modify a particular view, and which is created through that view.[6]

Smalltalk-80 supports a version of MVC that evolved from this one.[6] It provides abstract view and controller classes as well as various concrete subclasses of each that represent different generic widgets. In this scheme, a View represents some way of displaying information to the user, and a controller represents some way for the user to interact with a view. A view is also coupled to a model object, but the structure of that object is left up to the application programmer. The Smalltalk-80 environment also includes an "MVC Inspector", a development tool for viewing the structure of a given model, view, and controller side-by-side.[9]

In 1988, an article in The Journal of Object Technology (JOT) by two ex-PARC employees presented MVC as a general "programming paradigm and methodology" for Smalltalk-80 developers. However, their scheme differed from both Reenskaug et al.'s and that presented by the Smalltalk-80 reference books. They defined a view as covering any graphical concern, with a controller being a more abstract, generally invisible object that receives user input and interacts with one or many views and only one model.[10]

The MVC pattern subsequently evolved,[11] giving rise to variants such as hierarchical model–view–controller (HMVC), model–view–adapter (MVA), model–view–presenter (MVP), model–view–viewmodel (MVVM), and others that adapted MVC to different contexts.

The use of the MVC pattern in web applications grew after the introduction of NeXT's WebObjects in 1996, which was originally written in Objective-C (that borrowed heavily from Smalltalk) and helped enforce MVC principles. Later, the MVC pattern became popular with Java developers when WebObjects was ported to Java. Later frameworks for Java, such as Spring (released in October 2002), continued the strong bond between Java and MVC.

In 2003, Martin Fowler published Patterns of Enterprise Application Architecture, which presented MVC as a pattern where an "input controller" receives a request, sends the appropriate messages to a model object, takes a response from the model object, and passes the response to the appropriate view for display.[8]: 56 This is close to the approach taken by the Ruby on Rails web application framework (August 2004), which has the client send requests to the server via an in-browser view, these requests are handled by a controller on the server, and the controller communicates with the appropriate model objects.[12] The Django framework (July 2005, for Python) put forward a similar "model template view" (MTV) take on the pattern, in which a view retrieves data from models and passes it to templates for display.[13] Both Rails and Django debuted with a strong emphasis on rapid deployment, which increased MVC's popularity outside the traditional enterprise environment in which it has long been popular.

Components

Model

The central component of the pattern. It is the application's dynamic data structure, independent of the user interface.[14] It directly manages the data, logic and rules of the application. In Smalltalk-80, the design of a model type is left entirely to the programmer.[15] With WebObjects, Rails, and Django, a model type typically represents a table in the application's database.[16][17][18] The model is essential for keeping the data organized and consistent. It ensures that the application's data behaves according to the defined rules and logic.

View

Any representation of information such as a chart, diagram or table. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.

In Smalltalk-80, a view is just a visual representation of a model, and does not handle user input.[19] With WebObjects, a view represents a complete user interface element such as a menu or button, and does receive input from the user.[20] In both Smalltalk-80 and WebObjects, however, views are meant to be general-purpose and composable.[21][22]

With Rails and Django, the role of the view is played by HTML templates, so in their scheme a view specifies an in-browser user interface rather than representing a user interface widget directly.[23][24] (Django opts to call this kind of object a "template" in light of this.[25]) This approach puts relatively less emphasis on small, composable views; a typical Rails view has a one-to-one relationship with a controller action.[26]

Smalltalk-80 views communicate with both a model and a controller,[27] whereas with WebObjects, a view talks only to a controller, which then talks to a model.[28] With Rails and Django, a view/template is used by a controller/view when preparing a response to the client.[29][30]

Controller

Accepts input and converts it to commands for the model or view.[31]

A Smalltalk-80 controller handles user input events, such as button presses or mouse movement.[32] At any given time, each controller has one associated view and model, although one model object may hear from many different controllers. Only one controller, the "active" controller, receives user input at any given time; a global window manager object is responsible for setting the current active controller. If user input prompts a change in a model, the controller will signal the model to change, but the model is then responsible for telling its views to update.[33]

In WebObjects, the views handle user input, and the controller mediates between the views and the models. There may be only one controller per application, or one controller per window. Much of the application-specific logic is found in the controller.[34]

In Rails, requests arriving at the on-server application from the client are sent to a "router", which maps the request to a specific method of a specific controller. Within that method, the controller interacts with the request data and any relevant model objects and prepares a response using a view. Conventionally, each view has an associated controller; for example, if the application had a client view, it would typically have an associated Clients controller as well. However, developers are free to make other kinds of controllers if they wish.[35]

Django calls the object playing this role a "view" instead of a controller.[30] A Django view is a function that receives a web request and returns a web response. It may use templates to create the response.[36]

Interactions

In addition to dividing the application into a model, a view and a controller component, the MVC design pattern defines the interactions between these three components :[37]

  • The model is responsible for managing the data of the application. It receives user input from the controller.
  • The view renders presentation of the model in a particular format.
  • The controller responds to the user input and performs interactions on the data model objects. The controller receives the input, optionally validates it and then passes the input to the model.

As with other software patterns, MVC expresses the "core of the solution" to a problem while allowing it to be adapted for each system.[38] Particular MVC designs can vary significantly from the traditional description here.[39]

Motivation

As Alan Kay wrote in 2003, the original motivation behind the MVC was to allow creation of a graphical interface for any object.[40] That was outlined in detail in Richard Pawson's book Naked Objects.[40]

Trygve Reenskaug, originator of MVC at PARC, has written that "MVC was conceived as a general solution to the problem of users controlling a large and complex data set."[6]

In their 1991 guide Inside Smalltalk, Carleton University computer science professors Wilf LaLonde and John Pugh described the advantages of Smalltalk-80-style MVC as:

  • independence of presentation and data, e.g. multiple views on one model simultaneously,
  • composable presentation widgets, e.g. one view used as a subview of another,
  • switchable input modes, by swapping one controller out for another during runtime[disambiguation needed], and
  • independence of input and output processing, via the separate responsibilities of controllers and views.[41]

Use in web applications

Although originally developed for desktop computing, MVC has been widely adopted as a design for World Wide Web applications in major programming languages. Several web frameworks have been created that enforce the pattern. These software frameworks vary in their interpretations, mainly in the way that the MVC responsibilities are divided between the client and server.[42] Early MVC frameworks took a thin client approach that placed almost the entire model, view and controller logic on the server. In this approach, the client sends hyperlink requests or form submissions to the controller and then receives a complete and updated web page (or other document) from the view; the model exists entirely on the server.[42] Later frameworks have allowed the MVC components to execute partly on the client, using Ajax to synchronize data.

See also

References

  1. ^ "The Principles of Clean Architecture by Uncle Bob Martin". YouTube.
  2. ^ Reenskaug, Trygve; Coplien, James O. (20 March 2009). "The DCI Architecture: A New Vision of Object-Oriented Programming". Artima Developer. Archived from the original on 23 March 2009. Retrieved 3 August 2019. More deeply, the framework exists to separate the representation of information from user interaction.
  3. ^ Burbeck (1992): "... the user input, the modeling of the external world, and the visual feedback to the user are explicitly separated and handled by three types of object."
  4. ^ Davis, Ian. "What Are The Benefits of MVC?". Internet Alchemy. Retrieved 2016-11-29.
  5. ^ Model–View–Controller History. C2.com (2012-05-11). Retrieved on 2013-12-09.
  6. ^ a b c d e Notes and Historical documents from Trygve Reenskaug, inventor of MVC.
  7. ^ "A note on DynaBook requirements", Trygve Reenskaug, 22 March 1979, SysReq.pdf.
  8. ^ a b Fowler, Martin (2003). Patterns of Enterprise Application Architecture. Pearson Education, Inc. ISBN 0-321-12742-0.
  9. ^ Goldberg, Adele (1984). Smalltalk-80: The Interactive Programming Environment. Addison-Wesley. ISBN 0-201-11372-4.
  10. ^ Krasner, Glenn E.; Pope, Stephen T. (Aug–Sep 1988). "A cookbook for using the model–view controller user interface paradigm in Smalltalk-80". The Journal of Object Technology. 1 (3). SIGS Publications: 26–49. Also published as "A Description of the Model–View–Controller User Interface Paradigm in the Smalltalk-80 System" (Report), ParcPlace Systems; Retrieved 2012-06-05.
  11. ^ The evolution of MVC and other UI architectures from Martin Fowler.
  12. ^ "Ruby on Rails Guides". Retrieved March 19, 2022.
  13. ^ "Django FAQ: Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names?". Retrieved March 19, 2022.
  14. ^ Burbeck, Steve (1992) Applications Programming in Smalltalk-80:How to use Model–View–Controller (MVC)
  15. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. U.S.A.: Prentice-Hall Inc. p. 8. ISBN 0-13-467309-3. The model can be any object without restriction.
  16. ^ WebObjects System Overview (PDF). Cupertino, CA: Apple Computer, Inc. May 2001. p. 28. In WebObjects, a model establishes and maintains a correspondence between an enterprise object class and data stored in a relational database.
  17. ^ "Active Record Basics". Rails Guides. Retrieved October 27, 2022. This will create a Product model, mapped to a products table at the database.
  18. ^ "Models". Django Documentation. Retrieved October 27, 2022. Generally, each model maps to a single database table.
  19. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. U.S.A.: Prentice-Hall Inc. p. 8. ISBN 0-13-467309-3. The view is responsible for providing a visual representation of the object.
  20. ^ WebObjects System Overview (PDF). Cupertino, CA: Apple Computer, Inc. May 2001. p. 28. View objects represent things visible on the user interface (windows, for example, or buttons).
  21. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. U.S.A.: Prentice-Hall Inc. p. 8. ISBN 0-13-467309-3. [MVC] permits views to be used as parts for assembly into larger units; new kinds of views can be constructed using existing views as subviews.
  22. ^ WebObjects System Overview (PDF). Cupertino, CA: Apple Computer, Inc. May 2001. p. 28. View objects tend to be very reusable and so provide consistency between applications.
  23. ^ "Action View Overview". Rails Guides. Retrieved October 27, 2022. Action View templates are written using embedded Ruby in tags mingled with HTML.
  24. ^ "Templates". Django Documentation. Retrieved October 27, 2022. A template contains the static parts of the desired HTML output as well as some special syntax describing how dynamic content will be inserted.
  25. ^ "Django FAQ: Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names?". Retrieved October 27, 2022.
  26. ^ "Action View Overview". Rails Guides. Retrieved October 27, 2022. Typically, the views share their name with the associated controller action...
  27. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. U.S.A.: Prentice-Hall Inc. p. 9. ISBN 0-13-467309-3. ...the view knows explicitly about the model and the controller.
  28. ^ WebObjects System Overview (PDF). Cupertino, CA: Apple Computer, Inc. May 2001. p. 28. Acting as a mediator between Model objects and View objects in an application is a Controller object.
  29. ^ "Action View Overview". Rails Guides. Retrieved October 27, 2022. In Rails, web requests are handled by action controller and action view. Typically, action controller is concerned with communicating with the database and performing CRUD actions where necessary. Action View is then responsible for compiling the response.
  30. ^ a b "Django FAQ: Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names?". Retrieved October 27, 2022. In Django, a 'view' describes which data is presented, but a view normally delegates to a template, which describes how the data is presented.
  31. ^ Simple Example of MVC (Model–View–Controller) Architectural Pattern for Abstraction
  32. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. U.S.A.: Prentice-Hall Inc. p. 8. ISBN 0-13-467309-3. The controller is responsible for interfacing between the user and the model/view. It interprets keyboard characters along with mouse movements and clicking.
  33. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. U.S.A.: Prentice-Hall Inc. p. 11. ISBN 0-13-467309-3.
  34. ^ WebObjects System Overview (PDF). Cupertino, CA: Apple Computer, Inc. May 2001. p. 28.
  35. ^ "Action View Overview". Rails Guides. Retrieved October 27, 2022. Typically, the views share their name with the associated controller action...
  36. ^ "Writing views". Django Documentation. Retrieved October 27, 2022.
  37. ^ Buschmann, Frank (1996) Pattern-Oriented Software Architecture.
  38. ^ Gamma, Erich et al. (1994) Design Patterns
  39. ^ Moore, Dana et al. (2007) Professional Rich Internet Applications: Ajax and Beyond: "Since the origin of MVC, there have been many interpretations of the pattern. The concept has been adapted and applied in very different ways to a wide variety of systems and architectures."
  40. ^ a b Alan Kay (23 May 2003). "is squeak really object oriented ?". Squeak Foundation mailing list. Retrieved 26 October 2021.
  41. ^ LaLonde, Wilf R.; Pugh, John R. (1991). Inside Smalltalk. Vol. 2. U.S.A.: Prentice-Hall Inc. pp. 8–9. ISBN 0-13-467309-3.
  42. ^ a b Leff, Avraham; Rayfield, James T. (September 2001). Web-Application Development Using the Model/View/Controller Design Pattern. IEEE Enterprise Distributed Object Computing Conference. pp. 118–127.

Bibliography

Read other articles:

Marisela Personaje de Doña BárbaraCreado por Rómulo GallegosInterpretado por Génesis RodríguezMaría Elena MarquésSandra BallesterosEsperanza MagazMarisela BertiInformación personalNombre de nacimiento MariselaAlias La Catira Niña de mis ojosNiñaNacimiento valor desconocidoNacionalidad VenezolanaResidencia La Candelaria. Cinaruco, Apure. VenezuelaHato Altamira (El Miedo), Apure, VenezuelaReligión CatólicaCaracterísticas físicasSexo FemeninoColor de pelo Rubio y CastañoColor de ojos…

Conde Porto AlegreConde Porto Alegre sekitar usia 61 tahun, sekitar 1865Julukan The Gloved Centaur Lahir(1804-06-13)13 Juni 1804Rio Grande, Rio Grande do Sul, Brasil (Koloni Portugis)Meninggal18 Juli 1875(1875-07-18) (umur 71)Rio de Janeiro, Rio de Janeiro, Kekaisaran BrasilPengabdian Kekaisaran BrasilPangkatLetnan jenderalPerang/pertempuran Penaklukan Portugis di Banda Oriental Kemerdekaan Brasil Perang Cisplatine Perang Ragamuffin Perang Platine Perang Paraguay Pekerjaan la…

الاستعراف الخلوي الجزيئي (MCC) (Molecular cellular cognition) فرع من العلوم العصبية يتضمن دراسة العمليات الإدراكية بمناهج تحقق التكامل بين الآليات الجزيئية والخلوية والسلوكية. وتتضمن الأهداف الرئيسية لدراسات الاستعراف الخلوي الجزيئي اشتقاق تفسيرات جزيئية وخلوية من العمليات الإدراكية،

Martin-Luther-Kirche Die evangelisch-lutherische, denkmalgeschützte Martin-Luther-Kirche steht in Lemförde, einem Flecken im Landkreis Diepholz in Niedersachsen. Die Kirchengemeinde gehört zum Kirchenkreis Grafschaft Diepholz im Sprengel Osnabrück der Evangelisch-lutherischen Landeskirche Hannovers. Inhaltsverzeichnis 1 Beschreibung 2 Literatur 3 Weblinks 4 Einzelnachweise Beschreibung Die beiden Vorgängerkirchen von 1463 und 1645 sind abgebrannt. 1655–59 wurde die dritte Kirche gebaut un…

Eleições parlamentares europeias de 2019 Distritos: Aveiro | Beja | Braga | Bragança | Castelo Branco | Coimbra | Évora | Faro | Guarda | Leiria | Lisboa | Portalegre | Porto | Santarém | Setúbal | Viana do Castelo | Vila Real | Viseu | Açores | Madeira | Estrangeiro ← 2014 •  • 2024 → Eleições parlamentares europeias de 2019 no distrito de Leiria 26 de maio de 2019 Demografia eleitoral Hab. inscritos:  415 762 Votantes : 1…

Eris beralih ke halaman ini. Untuk kegunaan lain, lihat Eris (disambiguasi). Eris Eris (Tengah) and Dysnomia (kiri dari tengah).Teleskop luar angkasa Hubble.PenemuanDitemukan olehM. E. Brown,C. A. Trujillo,D. L. Rabinowitz[1]Tanggal penemuan21 Oktober 2003[1]PenamaanPenamaan MPC136199 ErisPenamaan alternatif2003 UB313[2]Kategori planet minorPlanet katai,TNO,plutoid, dan SDO[3]Kata sifat bahasa InggrisEridianCiri-ciri orbitEpos 6 Maret, 200…

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2019) تينا روبن معلومات شخصية تاريخ الميلاد 27 نوفمبر 1937[1]  تاريخ الوفاة 16 مارس 1996 (58 سنة) [1]  مواطنة الولايات المتحدة  الحياة العملية المهنة مغنية 

Bahía Wilhelmina o Guillermina Carta náutica que muestra la bahía WilhelminaUbicación geográficaContinente AntártidaOcéano océano Antártico/ océano AtlánticoCoordenadas 64°38′00″S 62°10′00″O / -64.6333, -62.1667Ubicación administrativaPaís Tratado AntárticoÁrea reclamada por  Argentina, Chile Chile, y el Reino Unido Reino UnidoDivisión Región del Tratado Antártico[editar datos en Wikidata] Vista de la bahía Wilhelmina La bahí…

Organization created under Government of India to regulate the Dental colleges Dental Council of IndiaAbbreviationDCIFormation1948TypeGovernmentPurposeTo regulate dental education in India and to grant Colleges, Universities, and also for registration of dental degree holders and monitoring dental practice.HeadquartersNew DelhiLocationAiwan-E-Galib Marg Kotla Road, Temple Lane New Delhi-110002Official language English and HindiPresidentDr. Dibyendu MazumdarMain organCouncilAffiliationsMinistry o…

Imagen de un goði y su pueblo encabezando un sacrificio a Thor de J.L. Lund. Goði o godi (del nórdico antiguo: (pl.) goðar; (f.) Gyðja[1]​) es un término que identifica a un sacerdote y caudillo tribal en la Escandinavia precristiana. El obispo arriano Ulfilas menciona el término en su Codex Argenteus en idioma gótico como gudja y lo equipara a sacerdote, pero en nórdico antiguo gyðja corresponde solo al sacerdocio femenino en su forma gótica.[2]​ En Escandinavia sobrevive…

Balkenprobe aus dem Rathaus von Gödenroth (Eichenholz) Die Dendrochronologie (von altgriechisch δένδρον déndron, deutsch ‚Baum‘, χρόνος chrónos, deutsch ‚Zeit‘, λόγος lógos, deutsch ‚Lehre ,Wissenschaft‘‘; also „Lehre/Wissenschaft vom Baumalter“, auch Baumringchronologie und Baumringdatierung genannt) ist eine Datierungsmethode der Geowissenschaften, der Archäologie, der Kunstwissenschaft und der Dendroökologie, bei der die Jahres…

Камери риторів ( нід. Rederijkerskamer) - нідерландські товариські об'єднання, що поєднували поетів, співаків, акторів-аматорів. Зміст 1 Історичні дані 2 Організаційна структура 3 Літературна частина 4 Див. також 5 Джерела 6 Посилання Історичні дані Докладніше: Бредеро Гербранд Адрі…

Otome Yōkai Zakuroおとめ妖怪 ざくろGenreSupranatural, sejarah[1] MangaPengarangLily HoshinoPenerbitGentoshaMajalahComic BirzDemografiSeinenTerbitNovember 2006 – sekarangVolume10 (Daftar volume) Seri animeSutradaraChiaki KonSkenarioMari OkadaStudioJ.C.StaffPelisensiNA NIS AmericaTayang 5 Oktober 2010 – 28 Desember 2010Episode13  Portal anime dan manga Otome Yōkai Zakuro (おとめ妖怪 ざくろcode: ja is deprecated , Maiden Spirit Zakuro) adalah sebuah seri manga…

У Вікіпедії є статті про інші населені пункти з такою назвою: Яблунівка. село Яблунівка Герб Країна  Україна Область Київська область Район Обухівський Рада Яблунівська сільська рада Код КАТОТТГ UA32120130240066667 Основні дані Засноване 1650 Перша згадка 1650 (373 роки)[1] Насе…

Women's national ice hockey team representing Canada CanadaThe Maple Leaf has always appeared on the Team Canada uniform since 1920, but was first worn by women in 1990.[1]Nickname(s)Team Canada(Équipe Canada)AssociationHockey CanadaHead coachTroy RyanAssistantsKori CheverieCaroline OuelletteCourtney Birchard-KesselCaptainMarie-Philip PoulinMost gamesHayley Wickenheiser (276)Top scorerHayley Wickenheiser (146)Most pointsHayley Wickenheiser (379)Team coloursRed, black, white[2] &…

Cobalt(II) hydroxideDanh pháp IUPACCoban(II) hydroxideTên khácCoban đihydroxide, cobanơ hydroxide, α-coban(II) hydroxide, β-coban(II) hydroxide, α-coban đihydroxide, β-coban đihydroxide, α-cobanơ hydroxide, β-cobanơ hydroxideNhận dạngSố CAS21041-93-0PubChem10129900Ảnh Jmol-3DảnhSMILES đầy đủ [Co+2].[OH-].[OH-] InChI đầy đủ 1/Co.2H2O/h;2*1H2/q+2;;/p-2 ChemSpider8305419Thuộc tínhCông thức phân tửCo(OH)2Khối lượng mol92,94768 g/molBề ngoàibột …

Déchets non collectés à Naples en 2010. La crise des déchets en Campanie est caractérisée par l'« état d'urgence » concernant le traitement ordinaire des déchets ménagers et assimilés (DMA) dans cette région d'Italie. Elle commence en 1993 au moment de la déclaration de l'état d'urgence et de la nomination du premier Commissaire du gouvernement investi de pouvoirs extraordinaires[1]. L'état d'urgence a pris officiellement fin quinze ans plus tard, avec la promulgation d…

Ships of World War II A B C D E F G H I J K L M N O P Q R S T U V W X Y Z aircraft carriers battleships battlecruisers cruisers coastal ships monitors destroyers torpedo boats frigates corvettes minor warships mine warfare amphibious warfare submarines auxiliaries classes  Battleships portalvte The List of ships of the Second World War contains major military vessels of the war, arranged alphabetically and by type. The list includes armed vessels that served during the war and in the im…

Linux distribution Artix LinuxDeveloperCore team,[1] Developer team,[2] Support staff[3]Written inCOS familyLinux (Unix-like)Working stateCurrentSource modelOpen-sourceLatest release20230814 / August 13, 2023; 3 months ago (2023-08-13) [note 1]Latest previewWeekly ISO'sRepositorygitea.artixlinux.orgPackage managerpacmanPlatformsAMD64 and ARM64[4]Kernel typeMonolithic (Linux)UserlandGNUDefaultuser interfaceUnix shell, LXQt, LXDE, MATE, Cin…

Bungkusan plasma yang mengering yang digunakan oleh militer Britania Raya dan Amerika Serikat selama Perang Dunia Kedua. Plasma darah adalah komponen darah berbentuk cairan berwarna kuning yang menjadi medium sel-sel darah, di mana sel darah ditutup. 55% dari jumlah/volume darah merupakan plasma darah. Volume plasma darah terdiri dari 90% berupa air dan 10% berupa larutan protein, glukosa, faktor koagulasi, ion mineral, hormon dan karbon dioksida. Plasma darah juga merupakan medium pada proses e…

Kembali kehalaman sebelumnya

Lokasi Pengunjung: 3.129.69.13