All Projects → ExtCore → Extcore

ExtCore / Extcore

Licence: other
Free, open source and cross-platform framework for creating modular and extendable web applications based on ASP.NET Core

Projects that are alternatives of or similar to Extcore

Simplcommerce
A simple, cross platform, modularized ecommerce system built on .NET Core
Stars: ✭ 3,474 (+421.62%)
Mutual labels:  asp-net-core, modular
Netcorecms
NetCoreCMS is a modular theme supported Content Management System developed using ASP.Net Core 2.0 MVC. Which is also usable as web application framework. This project is still under development. Please do not use before it's first release.
Stars: ✭ 165 (-75.23%)
Mutual labels:  asp-net-core, modular
Fanray
A blog built with ASP.NET Core
Stars: ✭ 117 (-82.43%)
Mutual labels:  asp-net-core, plugin
Beehive
🐝 BeeHive is a solution for iOS Application module programs, it absorbed the Spring Framework API service concept to avoid coupling between modules.
Stars: ✭ 4,117 (+518.17%)
Mutual labels:  plugin, modular
Vscode Plugin Demo
VSCode插件开发全攻略配套demo
Stars: ✭ 647 (-2.85%)
Mutual labels:  plugin
Cofoundry
Cofoundry is an extensible and flexible .NET Core CMS & application framework focusing on code first development
Stars: ✭ 621 (-6.76%)
Mutual labels:  asp-net-core
Injectify
Perform advanced MiTM attacks on websites with ease 💉
Stars: ✭ 612 (-8.11%)
Mutual labels:  modular
Xd To Flutter Plugin
Generate assets from XD for use in an existing Flutter project
Stars: ✭ 602 (-9.61%)
Mutual labels:  plugin
Scxcodeswitchexpander
Xcode plugin that enables switch cases autocompletion
Stars: ✭ 662 (-0.6%)
Mutual labels:  plugin
Electron.net
Build cross platform desktop apps with ASP.NET Core (Razor Pages, MVC, Blazor).
Stars: ✭ 6,074 (+812.01%)
Mutual labels:  asp-net-core
Little Aspnetcore Book
The Little ASP.NET Core Book, a friendly introduction to web programming and ASP.NET Core 2.0
Stars: ✭ 637 (-4.35%)
Mutual labels:  asp-net-core
X.pagedlist
Library for easily paging through any IEnumerable/IQueryable in ASP.NET/ASP.NET Core
Stars: ✭ 625 (-6.16%)
Mutual labels:  asp-net-core
Slinky
A light-weight, responsive, mobile-like navigation menu plugin
Stars: ✭ 649 (-2.55%)
Mutual labels:  plugin
Cleanarchitecture.webapi
An implementation of Clean Architecture for ASP.NET Core 3.1 WebAPI. Built with loosely coupled architecture and clean-code practices in mind.
Stars: ✭ 615 (-7.66%)
Mutual labels:  asp-net-core
Will paginate
Pagination library for Rails, Sinatra, Merb, DataMapper, and more
Stars: ✭ 5,621 (+743.99%)
Mutual labels:  plugin
React Native Make
A collection of everyday React Native CLI tools
Stars: ✭ 606 (-9.01%)
Mutual labels:  plugin
Sdk
Evolve the Android notification experience of existing apps, with community-driven plug-ins.
Stars: ✭ 632 (-5.11%)
Mutual labels:  plugin
Vim Vide
Lightest vimrc, while strong enough. 最轻的vim配置,却足够强!
Stars: ✭ 649 (-2.55%)
Mutual labels:  plugin
Calendar
微信小程序日历插件
Stars: ✭ 631 (-5.26%)
Mutual labels:  plugin
Cxmooc Tools
一个 超星(学习通)/智慧树(知到)/中国大学mooc 学习工具,火狐,谷歌,油猴支持.全自动任务,视频倍速秒过,作业考试题库,验证码自动打码(੧ᐛ੭挂科模式,启动)
Stars: ✭ 616 (-7.51%)
Mutual labels:  plugin

ExtCore 6.0.0

Join the chat at https://gitter.im/ExtCore/ExtCore

ExtCore logotype

Introduction

ExtCore is free, open source and cross-platform framework for creating modular and extendable web applications based on ASP.NET Core. It is built using the best and the most modern tools and languages (Visual Studio 2019, C# etc). Join our team!

ExtCore allows you to build your web applications from the different independent reusable modules or extensions. Each of these modules or extensions may consist of one or more ASP.NET Core projects and each of these projects may include everything you want as any other ASP.NET Core project. You don’t need to perform any additional actions to make it all work: any ASP.NET Core project can be used as an ExtCore-based web application extension by default. Controllers, view components, views (added as resources and/or precompiled), static content (added as resources) are resolved automatically. These projects may be then added to the web application in two ways: as direct dependencies (as source code or NuGet packages) or by copying compiled DLLs to the Extensions folder. ExtCore supports both of these options out of the box and at the same time.

Furthermore, any project of the ExtCore-based web application is able to discover the types that are defined inside all the projects (optionally using the predicates for assemblies filtering) and to get the implementations or instances of that types.

Any module or extension can execute its own code during the web application initialization and startup. You can use priorities to specify the correct order of the calls. This feature might be used for configuration, to register services etc.

ExtCore consists of two general packages and four optional basic extensions.

General Packages

ExtCore general packages are:

  • ExtCore.Infrastructure;
  • ExtCore.WebApplication.

ExtCore.Infrastructure

This package describes such basic shared things as IExtension interface and its abstract implementation – ExtensionBase class. Also it contains ExtensionManager class – the central element in the ExtCore types discovering mechanism. Most of the modules or extensions need this package as dependency.

ExtCore.WebApplication

This package describes basic web application behavior with Startup abstract class. This behavior includes modules and extensions assemblies discovering, ExtensionManager initialization etc. Any ExtCore web application must inherit its Startup class from ExtCore.WebApplication.Startup class in order to work properly. Also this package contains IAssemblyProvider interface and its implementation – AssemblyProvider class which is used to discover assemblies and might be replaced with the custom one.

Basic Extensions

ExtCore basic extensions are:

  • ExtCore.Data;
  • ExtCore.Data.EntityFramework;
  • ExtCore.Mvc;
  • ExtCore.Events.

ExtCore.Data

By default, ExtCore doesn’t know anything about data and storage, but you can use ExtCore.Data extension to have unified approach to working with data and single storage context among all the extensions. Storage might be represented by a database, a web API, a file structure or anything else.

ExtCore.Data.EntityFramework

Currently it supports MySQL, PostgreSql, SQLite, and SQL Server, but it is very easy to add another storage support.

ExtCore.Mvc

By default, ExtCore web applications are not MVC ones. MVC support is provided for them by ExtCore.Mvc extension. This extension initializes MVC, makes it possible to use controllers, view components, views (added as resources and/or precompiled), static content (added as resources) from other extensions etc.

ExtCore.Events

It can be used by the extension to notify the code in this or any other extension about some events.

You can find more information using the links at the bottom of this page.

Getting Started

All you need to do to have modular and extendable web application is:

  • add ExtCore.WebApplication as dependency to your main web application project;
  • call AddExtCore and UseExtCore inside your web application's Startup class;
  • implement the ExtCore.Infrastructure.IConfigureServicesAction and IConfigureAction interfaces in your extensions in order to execute some code inside the ConfigureServices and Configure methods of the web application's Startup class (optional);
  • tell main web application about the extensions (with implicit dependencies or by copying them into the extensions folder).

Samples

Please take a look at our samples on GitHub:

You can also download our ready to use full-featured sample. It contains everything you need to run ExtCore-based web application from Visual Studio 2019, including SQLite database with the test data.

Tutorials

We have written several tutorials to help you start developing your ExtCore-based web applications.

Real Projects

Please take a look at Platformus on GitHub. It is CMS built on ExtCore framework with 3 extensions and 25 projects.

Development and Debug

To be able to debug an ExtCore extension you need to add the explicit project references to all of its projects to the main web application. When development process is complete, you may remove that references and use the extension as the DLL files.

Links

Website: http://extcore.net/

Docs: http://docs.extcore.net/

Author: http://sikorsky.pro/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].