{"id":20366831,"url":"https://github.com/distantcam/zeromvvm","last_synced_at":"2025-10-10T03:03:30.484Z","repository":{"id":143492286,"uuid":"7268979","full_name":"distantcam/zeromvvm","owner":"distantcam","description":"The MVVM framework you don't even know is there.","archived":false,"fork":false,"pushed_at":"2015-03-03T02:45:40.000Z","size":1372,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-01T07:57:07.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/distantcam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-12-21T04:50:23.000Z","updated_at":"2022-12-11T16:22:32.000Z","dependencies_parsed_at":"2023-03-19T01:45:45.840Z","dependency_job_id":null,"html_url":"https://github.com/distantcam/zeromvvm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/distantcam/zeromvvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distantcam%2Fzeromvvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distantcam%2Fzeromvvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distantcam%2Fzeromvvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distantcam%2Fzeromvvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/distantcam","download_url":"https://codeload.github.com/distantcam/zeromvvm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distantcam%2Fzeromvvm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002500,"owners_count":26083410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-15T00:27:18.261Z","updated_at":"2025-10-10T03:03:30.463Z","avatar_url":"https://github.com/distantcam.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"ZeroMVVM\r\n========\r\n\r\nZeroMVVM is a Model-View-ViewModel framework designed to just work with a minimum amount of setup.\r\n\r\nZeroMVVM is designed to work with [PropertyChanged.Fody](https://github.com/SimonCropp/PropertyChanged) and [PropertyChanging.Fody](https://github.com/SimonCropp/PropertyChanging)\r\n\r\n[Fody Sample Usage](https://github.com/SimonCropp/Fody/wiki/SampleUsage)\r\n\r\nGetting Started\r\n----------------\r\n\r\nFirst a simple example on how to start using ZeroMVVM.\r\n\r\n    public partial class App : Application\r\n    {\r\n        public App()\r\n        {\r\n            ZAppRunner.Start\u003cShellViewModel\u003e();\r\n        }\r\n    }\r\n\r\nThis is all you need to have ZeroMVVM start with the ShellViewModel. ZeroMVVM is ViewModel driven and thus you must provide a ViewModel first. It will go and find the matching View using conventions.\r\n\r\nLogging\r\n---------\r\n\r\nZeroMVVM has a built in logging system for all it's messages. But if for example you wanted to use NLog for logging you can tell ZeroMVVM to do that.\r\n\r\n    public partial class App : Application\r\n    {\r\n        public App()\r\n        {\r\n            ZAppRunner.Default.Logger = l =\u003e LogManager.GetLogger(l);\r\n        \r\n            ZAppRunner.Start\u003cShellViewModel\u003e();\r\n        }\r\n    }\r\n\r\nZeroMVVM will try to use whatever logger you give it, whether it's NLog, Log4Net or any other logger.\r\n\r\nIoC Container\r\n---------------\r\n\r\nInternally ZeroMVVM uses an IoC container to loosely couple all the parts of your application (Views, ViewModels, etc.) together.\r\n\r\nTo use your own IoC simply provide it to ZeroMVVM.\r\n\r\n    // Autofac\r\n    ZAppRunner.Default.IoC = new Autofac.ContainerBuilder();\r\n    \r\n    // Ninject:\r\n    ZAppRunner.Default.IoC = new Ninject.StandardKernel();\r\n\r\n\t// Castle Windsor:\r\n\tZAppRunner.Default.IoC = new Castle.Windsor.WindsorContainer();\r\n    \r\nZeroMVVM will use whatever IoC you give it in the most obvious way. If you wish to provide your own IoC container you can do so by providing an implementation of IContainer.\r\n\r\n    ZAppRunner.Default.IoC = new MyCustomContainer();","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdistantcam%2Fzeromvvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdistantcam%2Fzeromvvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdistantcam%2Fzeromvvm/lists"}