{"id":"https://openalex.org/W2308333005","doi":"https://doi.org/10.1145/2892664.2892672","title":"Enabling modular persistence for reactive data models in F# client-server web applications","display_name":"Enabling modular persistence for reactive data models in F# client-server web applications","publication_year":2016,"publication_date":"2016-03-14","ids":{"openalex":"https://openalex.org/W2308333005","doi":"https://doi.org/10.1145/2892664.2892672","mag":"2308333005"},"language":"en","primary_location":{"id":"doi:10.1145/2892664.2892672","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2892664.2892672","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Companion Proceedings of the 15th International Conference on Modularity","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5089654311","display_name":"Lo\u00efc Denuzi\u00e8re","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Lo\u00efc Denuzi\u00e8re","raw_affiliation_strings":["IntelliFactory, Hungary"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"IntelliFactory, Hungary","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5068518454","display_name":"\u00c1d\u00e1m Gr\u00e1nicz","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Adam Granicz","raw_affiliation_strings":["IntelliFactory, Hungary"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"IntelliFactory, Hungary","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.4416,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.778921,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"55","last_page":"64"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9980999827384949,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9980999827384949,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9941999912261963,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9940000176429749,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8586071729660034},{"id":"https://openalex.org/keywords/markup-language","display_name":"Markup language","score":0.5528587102890015},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5152645111083984},{"id":"https://openalex.org/keywords/web-application","display_name":"Web application","score":0.5098954439163208},{"id":"https://openalex.org/keywords/callback","display_name":"Callback","score":0.5087442994117737},{"id":"https://openalex.org/keywords/html","display_name":"HTML","score":0.4809383749961853},{"id":"https://openalex.org/keywords/xhtml","display_name":"XHTML","score":0.4546617865562439},{"id":"https://openalex.org/keywords/persistent-data-structure","display_name":"Persistent data structure","score":0.41596513986587524},{"id":"https://openalex.org/keywords/world-wide-web","display_name":"World Wide Web","score":0.36568185687065125},{"id":"https://openalex.org/keywords/database","display_name":"Database","score":0.33474892377853394},{"id":"https://openalex.org/keywords/xml","display_name":"XML","score":0.32977020740509033},{"id":"https://openalex.org/keywords/web-page","display_name":"Web page","score":0.3149743378162384}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8586071729660034},{"id":"https://openalex.org/C45874996","wikidata":"https://www.wikidata.org/wiki/Q37045","display_name":"Markup language","level":3,"score":0.5528587102890015},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5152645111083984},{"id":"https://openalex.org/C118643609","wikidata":"https://www.wikidata.org/wiki/Q189210","display_name":"Web application","level":2,"score":0.5098954439163208},{"id":"https://openalex.org/C204495577","wikidata":"https://www.wikidata.org/wiki/Q1205349","display_name":"Callback","level":2,"score":0.5087442994117737},{"id":"https://openalex.org/C138708601","wikidata":"https://www.wikidata.org/wiki/Q8811","display_name":"HTML","level":3,"score":0.4809383749961853},{"id":"https://openalex.org/C189139006","wikidata":"https://www.wikidata.org/wiki/Q166074","display_name":"XHTML","level":4,"score":0.4546617865562439},{"id":"https://openalex.org/C888380","wikidata":"https://www.wikidata.org/wiki/Q2427787","display_name":"Persistent data structure","level":2,"score":0.41596513986587524},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.36568185687065125},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.33474892377853394},{"id":"https://openalex.org/C8797682","wikidata":"https://www.wikidata.org/wiki/Q2115","display_name":"XML","level":2,"score":0.32977020740509033},{"id":"https://openalex.org/C21959979","wikidata":"https://www.wikidata.org/wiki/Q36774","display_name":"Web page","level":2,"score":0.3149743378162384}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2892664.2892672","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2892664.2892672","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Companion Proceedings of the 15th International Conference on Modularity","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":13,"referenced_works":["https://openalex.org/W1482490768","https://openalex.org/W1534674107","https://openalex.org/W2047497632","https://openalex.org/W2072536664","https://openalex.org/W2155060461","https://openalex.org/W2171267342","https://openalex.org/W2561675875","https://openalex.org/W2607749006","https://openalex.org/W2913273467","https://openalex.org/W3126437730","https://openalex.org/W4245886278","https://openalex.org/W4247564058","https://openalex.org/W4249156328"],"related_works":["https://openalex.org/W183683573","https://openalex.org/W2211309320","https://openalex.org/W2187952378","https://openalex.org/W3021385460","https://openalex.org/W627285271","https://openalex.org/W2498118260","https://openalex.org/W2914752298","https://openalex.org/W1559346900","https://openalex.org/W2620884338","https://openalex.org/W4243434273"],"abstract_inverted_index":{"Functional":[0],"languages":[1],"have":[2],"been":[3],"used":[4],"with":[5,22,54,126,179,245],"great":[6],"success":[7],"in":[8,37,46,68,154,254],"the":[9,26,69,90,98,112,139,150,160,183,210,231,240,261,267],"domain":[10],"of":[11,16,44,62,92,104,114,162,242],"web":[12,32,49,59,135,177],"programming.":[13],"The":[14,186],"use":[15,113],"reactive":[17,48,56,123,151,205,268],"programming":[18,264],"approaches":[19],"to":[20,34,75,87,119,138,202],"deal":[21],"time-varying":[23],"data":[24,57,144,152,206,271],"reduces":[25],"need":[27],"for":[28],"callbacks,":[29],"and":[30,72,84,94,101,146,165,171,225,266,274],"allows":[31],"applications":[33,125],"be":[35,214],"written":[36,67],"a":[38,76,80,132,168,172,246],"more":[39],"declarative":[40],"style.":[41],"In":[42,107],"spite":[43],"advances":[45],"functional":[47,70],"programming,":[50],"various":[51],"issues":[52],"remain":[53],"integrating":[55],"into":[58,216],"pages.":[60],"Portions":[61],"presentation-layer":[63],"code":[64,233],"are":[65,228],"typically":[66],"language":[71],"imperatively":[73],"added":[74],"container":[77],"section":[78],"on":[79],"page,":[81],"fragmenting":[82],"design":[83,211,269],"requiring":[85],"developers":[86],"work":[88,156,187,223],"around":[89,270],"lack":[91],"proper":[93],"safe":[95],"integration":[96],"between":[97,142,182],"data,":[99],"client":[100],"server":[102],"tiers":[103],"their":[105,147],"applications.":[106],"this":[108],"paper,":[109],"we":[110],"investigate":[111],"F#":[115,134,199,232,263],"compile-time":[116],"metaprogramming":[117],"techniques":[118,244],"enable":[120],"developing":[121],"type-safe,":[122],"client-server":[124,249],"seamless":[127],"server-side":[128,163],"persistence":[129,164,275],"using":[130,167,191],"WebSharper,":[131],"mature":[133],"framework.":[136],"Next":[137],"two-way":[140],"binding":[141],"client-side":[143],"models":[145,153],"corresponding":[148],"presentation,":[149],"our":[155,203],"can":[157,213,221],"also":[158,189],"express":[159],"details":[161],"synchronization,":[166,273],"modular":[169],"approach":[170],"strongly-typed":[173],"communication":[174],"channel":[175],"over":[176],"sockets":[178],"communicating":[180],"agents":[181],"two":[184],"tiers.":[185],"presented":[188],"enables":[190],"annotated":[192],"HTML":[193,218],"markup":[194,226],"templates,":[195],"translated":[196],"by":[197],"an":[198],"type":[200,259],"provider":[201],"statically-typed":[204],"models.":[207],"This":[208],"way,":[209],"artifacts":[212],"externalized":[215],"native":[217],"that":[219,258],"designers":[220],"easily":[222],"with,":[224],"changes":[227],"checked":[229],"against":[230],"base":[234],"at":[235],"compile":[236],"time.":[237],"We":[238,256],"demonstrate":[239],"combination":[241],"these":[243],"data-aware":[247],"single-page":[248],"chat":[250],"application,":[251],"expressed":[252],"entirely":[253],"F#.":[255],"find":[257],"safety,":[260],"uniform":[262],"model,":[265],"binding,":[272],"greatly":[276],"enhances":[277],"developer":[278],"productivity.":[279]},"counts_by_year":[{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":1},{"year":2019,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
