{"id":27279145,"url":"https://github.com/coolshare/newframework-architect","last_synced_at":"2026-01-21T13:09:55.932Z","repository":{"id":257828001,"uuid":"146128946","full_name":"coolshare/NewFramework-Architect","owner":"coolshare","description":null,"archived":false,"fork":false,"pushed_at":"2018-10-01T18:37:49.000Z","size":312,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T17:52:40.275Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coolshare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-25T20:54:05.000Z","updated_at":"2018-10-01T18:37:50.000Z","dependencies_parsed_at":"2024-10-16T07:05:01.617Z","dependency_job_id":"011741d9-f715-4177-b1cd-bab3feeb2510","html_url":"https://github.com/coolshare/NewFramework-Architect","commit_stats":null,"previous_names":["coolshare/newframework-architect"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coolshare/NewFramework-Architect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coolshare%2FNewFramework-Architect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coolshare%2FNewFramework-Architect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coolshare%2FNewFramework-Architect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coolshare%2FNewFramework-Architect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coolshare","download_url":"https://codeload.github.com/coolshare/NewFramework-Architect/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coolshare%2FNewFramework-Architect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-11T17:48:19.903Z","updated_at":"2026-01-21T13:09:55.912Z","avatar_url":"https://github.com/coolshare.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"New Framework: Architecture\n=================================\n\nBy Mark Qian 8/2018 (markqian@hotmail.com)\n\n\u003cb\u003eA. Introduction:\u003c/b\u003e\u003cbr/\u003e\nAbout a years ago, I, as the UI lead/architect, started an UI of SDN (Software-defined networking) project from scrach. The requirements including the following:\u003cbr/\u003e\n\u003cul\u003e\n  \u003cli\u003ehighly componentized: there is a protential to eventually deliver a platform where third-party coders can share the components used by company's primary UI\u003c/li\u003e\n  \u003cli\u003erapidly changable: in many cases, PM want to sit with UI to apply design (modification or creation on the fly while discussing.\u003c/li\u003e\n  \u003cli\u003emodel driven: server side will generate/deliver (even runtime) a list of \"models\" and UI should be able to  render them\u003c/li\u003e\n  \u003cli\u003eother \"regular\" requirments: highly dynamically (heavily streaming), highly graphicall (a variety of charts and operatable diagrams) and so on\n\n\u003c/ul\u003e\n\u003cb\u003eB. Result:\u003c/b\u003e\u003cbr/\u003e \nCurrently, as a result, a framework has been established and several applications are built on the framework. The framework provides the following:\u003cbr/\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cb\u003ehighly componentized\u003c/b\u003e: any application, as a container, built on the framework contains two types of highly decoupled \"objects\": UI component (boxes in light blue below) and services (circles in orange). Pub/Sub is used for communication:\u003c/li\u003e\n  \u003cimg src=\"https://github.com/coolshare/NewFramework-Architect/blob/master/workflow.png\"/\u003e\n  As you can see in the diagram above, no object reference to others: for example, an UI component has no idea about whom its request (publish) is served by and a service also has no idea about where the request is coming and where the response from server is return to: \"objects\" in the container is hightly isolated!\n  \u003cli\u003e\u003cb\u003erapidly changable\u003c/b\u003e: we only need about 5 minutes to put together a regular form or table and it takes only seconds to add/remove/modify a field since we only need to edit the UI schema and the rest will be taken care by the framework. You will see how in the \u003ca href=\"https://github.com/coolshare/NewFramework-SchemaDriven#UIRendersViews\" target=\"_blank\"\u003e\"Schema Driven\"\u003c/a\u003e section\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003emodel driven\u003c/b\u003e: the framework can render any \"regular\" models out of model definition delivered by server. The rest of screens need some special \"UI muscle\". The percentage depends on application.\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eOne major character of this framework is that any application built on it contains no application logic (work flow) until the runtime\u003c/b\u003e - the application logic is loaded from a json configuration file at runtime. That is, the logic is extracted out of codes as data. The details are available in the \u003ca href=\"https://github.com/coolshare/NewFramework-SchemaDriven#UIHandlingApplicationLogic\" target=\"blank\"\u003e\"Schema Driven: UI Handling Application Logic\"\u003c/a\u003e section\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eCommunication pattern is another key design point in this framework\u003c/b\u003e\u003cbr/\u003e\n    Pub/Sub plays many roles in this architecture: isolate views and services, link and field/view (in schem or in js code) to topics.\n    See details at \u003ca href=\"https://github.com/coolshare/NewFramework-SchemaDriven/blob/master/README.md#EachFieldHandleSpecialInteraction\" target=\"blank\"\u003eSchema Driven: Each field handle special interaction\u003c/a\u003e\n  \n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cb\u003eC. Details on Design and Implementation:\u003c/b\u003e\u003cbr/\u003e\n\u003cul\u003e\n  \u003cli\u003e1. Problem:\u003c/li\u003e\n  \u003cli\u003e2. Solution:\u003c/li\u003e\n\u003c/ul\u003e\n\n(Under construction)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoolshare%2Fnewframework-architect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoolshare%2Fnewframework-architect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoolshare%2Fnewframework-architect/lists"}