Introduction
The ODS/API solution (Ed-Fi-ODS.sln) contains a large number of assemblies. Some of these are shared with other applications, including Admin App and bulk-related utilities. Division of code into separate projects is a common* practice to provide that sharing capability, and to insure that classes and packages (assemblies, libraries) are coherent and dedicated to purpose. However, the current scheme has costs associated with it, including:
...
- Assembly Fiefdoms: What's the Right Number of Assemblies/Libraries? by Scott Hanselman
C# Namespaces and Assemblies Best Practice Stack Overflow discussion
Should you split your ASP.NET MVC project into multiple projects? by Mosh Hamedani
Separate Assemblies != Loose Coupling by Jeremy Miller
Refactoring
Bulk Load Assemblies and Classes
Jira Legacy | ||||||||
---|---|---|---|---|---|---|---|---|
|
- Consolidates all bulk-load related security classes by eliminating
EdFi.Ods.Security.BulkLoad
and removing classes fromEdFi.Ods.Security
, placing all of the above into
.EdFi.Ods.BulkLoad.Core
- Eliminates
EdFi.Ods.BulkLoad.Services
, an anemic project a single class (XmlShreddingDatabaseInstaller). This class was moved intoEdFi.Ods.Standard.NHibernate.Mappings.SqlServer
, as its single purpose - despite the name - is to load NHibernate-related classes into the Castle Windsor dependency injection container.
Create NuGet Packages for Admin App and Load Tools
See Creating Shared Packages for Admin App and Load Tools
...
Refactorings
Child pages (Children Display) |
---|