{"id":13824902,"url":"https://github.com/ExtCore/ExtCore","last_synced_at":"2025-07-08T20:32:28.984Z","repository":{"id":56179920,"uuid":"47846881","full_name":"ExtCore/ExtCore","owner":"ExtCore","description":"Free, open source and cross-platform framework for creating modular and extendable web applications based on ASP.NET Core","archived":false,"fork":false,"pushed_at":"2024-06-06T11:11:47.000Z","size":642,"stargazers_count":792,"open_issues_count":20,"forks_count":146,"subscribers_count":88,"default_branch":"master","last_synced_at":"2025-05-23T14:22:27.391Z","etag":null,"topics":["asp-net-core","dotnet","dotnet-core","dotnetcore","extcore-framework","modular","plugin"],"latest_commit_sha":null,"homepage":"http://extcore.net/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ExtCore.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-11T19:32:17.000Z","updated_at":"2025-05-13T09:24:02.000Z","dependencies_parsed_at":"2024-01-13T16:22:30.981Z","dependency_job_id":"15992ea6-c8b4-4b00-b377-79502f559c43","html_url":"https://github.com/ExtCore/ExtCore","commit_stats":null,"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/ExtCore/ExtCore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtCore%2FExtCore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtCore%2FExtCore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtCore%2FExtCore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtCore%2FExtCore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ExtCore","download_url":"https://codeload.github.com/ExtCore/ExtCore/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtCore%2FExtCore/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264343747,"owners_count":23593786,"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","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":["asp-net-core","dotnet","dotnet-core","dotnetcore","extcore-framework","modular","plugin"],"created_at":"2024-08-04T09:01:11.423Z","updated_at":"2025-07-08T20:32:27.782Z","avatar_url":"https://github.com/ExtCore.png","language":"C#","readme":"# ExtCore 9.0.0\n\n[![Join the chat at https://gitter.im/ExtCore/ExtCore](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ExtCore/ExtCore?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n![ExtCore logotype](http://extcore.net/extcore_github_icon.png)\n\n## Introduction\n\nExtCore is free, open source and cross-platform framework for creating modular and extendable web applications\nbased on ASP.NET Core. It is built using the best and the most modern tools and languages (Visual Studio 2022, C#\netc). Join our team!\n\nExtCore allows you to build your web applications from the different independent reusable modules or extensions.\nEach of these modules or extensions may consist of one or more ASP.NET Core projects and each of these projects\nmay include everything you want as any other ASP.NET Core project. You don’t need to perform any additional\nactions to make it all work: any ASP.NET Core project can be used as an ExtCore-based web application extension\nby default. Controllers, view components, precompiled views, static content (added as resources) are resolved automatically.\nThese projects may be then added to the web application in two ways: as direct dependencies (as source code or NuGet packages)\nor by copying compiled DLLs to the Extensions folder. ExtCore supports both of these options out of the box and at the same time.\n\nFurthermore, any project of the ExtCore-based web application is able to discover the types that are defined\ninside all the projects (optionally using the predicates for assemblies filtering) and to get the implementations\nor instances of that types.\n\nAny module or extension can execute its own code during the web application initialization and startup. You can\nuse priorities to specify the correct order of the calls. This feature might be used for configuration,\nto register services etc.\n\nExtCore consists of two general packages and four optional basic extensions.\n\n### General Packages\n\nExtCore general packages are:\n\n* ExtCore.Infrastructure;\n* ExtCore.WebApplication.\n\n#### ExtCore.Infrastructure\n\nThis package describes such basic shared things as IExtension interface and its abstract implementation –\nExtensionBase class. Also it contains ExtensionManager class – the central element in the ExtCore types\ndiscovering mechanism. Most of the modules or extensions need this package as dependency.\n\n#### ExtCore.WebApplication\n\nThis package describes basic web application behavior with Startup abstract class. This behavior includes\nmodules and extensions assemblies discovering, ExtensionManager initialization etc. Any ExtCore web\napplication must inherit its Startup class from ExtCore.WebApplication.Startup class in order to work\nproperly. Also this package contains IAssemblyProvider interface and its implementation –\nAssemblyProvider class which is used to discover assemblies and might be replaced with the custom one.\n\n### Basic Extensions\n\nExtCore basic extensions are:\n\n* ExtCore.Data;\n* ExtCore.Data.EntityFramework;\n* ExtCore.Mvc;\n* ExtCore.Events.\n\n#### ExtCore.Data\n\nBy default, ExtCore doesn’t know anything about data and storage, but you can use ExtCore.Data extension to have\nunified approach to working with data and single storage context among all the extensions. Storage might be represented\nby a database, a web API, a file structure or anything else.\n\n#### ExtCore.Data.EntityFramework\n\nCurrently it supports MySQL, PostgreSql, SQLite, and SQL Server, but it is very easy to add another storage support.\n\n#### ExtCore.Mvc\n\nBy default, ExtCore web applications are not MVC ones. MVC support is provided for them by ExtCore.Mvc extension.\nThis extension initializes MVC, makes it possible to use controllers, view components, precompiled views, static content (added as resources) from other extensions etc.\n\n#### ExtCore.Events\n\nIt can be used by the extension to notify the code in this or any other extension about some events.\n\nYou can find more information using the links at the bottom of this page.\n\n## Getting Started\n\nAll you need to do to have modular and extendable web application is:\n\n* add ExtCore.WebApplication as dependency to your main web application project;\n* call AddExtCore and UseExtCore inside your web application's Startup class;\n* implement the ExtCore.Infrastructure.IConfigureServicesAction and IConfigureAction interfaces in your extensions\nin order to execute some code inside the ConfigureServices and Configure methods of the web application's Startup class (optional);\n* tell main web application about the extensions (with implicit dependencies or by copying them into the extensions folder).\n\n### Samples\n\nPlease take a look at our samples on GitHub:\n\n* [Full-featured ExtCore 9.0.0 framework sample web application](https://github.com/ExtCore/ExtCore-Sample);\n* [ExtCore framework 9.0.0 sample simplest web application](https://github.com/ExtCore/ExtCore-Sample-Simplest);\n* [ExtCore framework 9.0.0 sample MVC web application](https://github.com/ExtCore/ExtCore-Sample-Mvc);\n* [ExtCore framework 9.0.0 sample web application that uses file storage](https://github.com/ExtCore/ExtCore-Sample-FileStorage);\n* [ExtCore framework 9.0.0 sample web application that uses a database](https://github.com/ExtCore/ExtCore-Sample-Data);\n* [ExtCore framework 9.0.0 sample web application that uses Identity](https://github.com/ExtCore/ExtCore-Sample-Identity);\n* [ExtCore framework 9.0.0 sample web application with modular UI](https://github.com/ExtCore/ExtCore-Sample-Modular-Ui);\n* [ExtCore framework 9.0.0 advanced sample web application with modular UI](https://github.com/ExtCore/ExtCore-Sample-Modular-Ui-Adv);\n* [ExtCore framework 9.0.0 advanced sample accounting web application](https://github.com/ExtCore/ExtCore-Sample-Accounting);\n* [ExtCore framework 9.0.0 sample web application that registers a service inside the extension](https://github.com/ExtCore/ExtCore-Sample-Service);\n* [ExtCore framework 9.0.0 sample web application that uses the events](https://github.com/ExtCore/ExtCore-Sample-Events);\n* [ExtCore framework 9.0.0 sample API web application](https://github.com/ExtCore/ExtCore-Sample-Api).\n\nYou can also download our [ready to use full-featured sample](http://extcore.net/files/ExtCore-Sample-9.0.0.zip).\nIt contains everything you need to run ExtCore-based web application from Visual Studio 2022, including SQLite\ndatabase with the test data.\n\n### Tutorials\n\nWe have written [several tutorials](http://docs.extcore.net/en/latest/getting_started/index.html)\nto help you start developing your ExtCore-based web applications.\n\n### Real Projects\n\nPlease take a look at [Platformus](https://github.com/Platformus/Platformus) on GitHub. It is CMS\nbuilt on ExtCore framework with 3 extensions and 25 projects.\n\n## Development and Debug\n\nTo be able to debug an ExtCore extension you need to add the explicit project references to all of its projects\nto the main web application. When development process is complete, you may remove that references and use the\nextension as the DLL files.\n\n## Links\n\nWebsite: http://extcore.net/\n\nDocs: http://docs.extcore.net/\n\nAuthor: http://sikorsky.pro/","funding_links":[],"categories":["dotnet","C# #","C\\#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FExtCore%2FExtCore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FExtCore%2FExtCore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FExtCore%2FExtCore/lists"}