SCE is meant to be a powerful, black box Nuget package, providing a lot of the functionality which we need in an FHSS website, including authentication, content and file management.
The advantage of this SCE paradigm are maintainability, extensibility and ease-of-use. With SCE you can have a new standardized BYU template website up and running in only a few seconds. By using the SCE packages, you no longer have to copy and paste code, clone repositories or attempt to rename them and change port numbers to stop them from conflicting on your local development machine! Because SCE is a black box, you will also be able to upgrade to the newest SCE version with only a few clicks of the mouse and seamlessly and immediately integrate any new SCE features or bug fixes in future releases.
SCE can not possibly provide everything you may need though, and you can’t modify the black box’s insides. So, when SCE fails to meet your needs, you have three options:
- Code it yourself. SCE is completely compatible with the standard MVC paradigm. This means that you can create your own controllers, views and models, right alongside SCE’s. You can even build leverage SCE APIs inside your own code.
- Borrow SCE code. Remember, just because you can’t see the code inside the SCE .dll doesn’t mean you can’t look at the source code. Borrow anything you need. Just remember, anything you build custom will not upgrade with the API.
- Add it to SCE! If the functionality you need could ever be useful to even one more website, it may be worth building into SCE. Once it's a part of SCE, you can update your website and any others you want to utilize the new functionality. We like DRY code here. Code it once, use it forever. (Hint: we like this option.)