SobekCM, weighing in at 113,643 lines of code (plus comments)

Mark Sullivan, the UFDC/DLC/dLOC programmer, recently shared this information. It’s exciting to see that SobekCM (our digital asset management system, digital library system, and digital production tool set) is such a streamlined solution with so much functionality. There are seven projects which make up the SobekCM solution. In those projects, there are:
113,643 lines of code ( not comments or empty lines )
23,452 lines of comments
420 files
60 folders
544 classes ( 55 abstract classes, 1 windows form, 5 ASPX pages )
14 interfaces
The main two projects are:
1) SobekCM_Bib_Package which has all the code to represent digital objects, read metadata, write metadata, etc.. This is used throughout all the DLC/UFDC/dLOC applications.
36,554 lines of code
5,796 lines of comments
121 files
19 folders
165 classes ( 3 abstract classes, 1 windows form )
2) SobekCM_Library which does all the rendering, navigation, authentication, etc for the SobekCM library. This relies heavily upon the above library for reading and displaying of digital resources and is utilized by both the builder and the customization manager.
68,803 lines of code
13,825 lines of comments
251 files
30 folders
328 classes ( 52 abstract classes )
11 interfaces
This does not include the 22 separate javascript files of which eight are written by me and include 3951 new lines of code and 702 lines of comments.
3) While the main SobekCM web project is not strictly a library, it is the third project in the SobekCM solution. It is the first project which a user interacts with when entering the library. This project is actually very small, containing only about 1300 .NET lines. It does house the five web forms used in the application, although these forms are quite small and are just basically skeletons into which the SobekCM_Library renders HTML or controls.
4) SobekCM_URL_Rewriter is a tiny library which is essentially just a HttpModule for rewriting and translating the URL to allow for cleaner URLs.
5) SobekCM_Tools is a small library ( about 4000 code lines ) which contains additional classes for logging, interacting with the tracking database, and interacting with the Florida Dark Archive (DAITSS). This is kept seperate from the general library since this is not strictly involved in rendering the HTML but is used by some modules and is used with the SobekCM_Library and SobekCM_Builder libraries for building collection text indexes and loading new items through the Builder.
6) FileUploadLibrary ( written by Darren Johnstone ) is about 3000 .NET code lines and 5500 lines of javascript used for uploading data via HTTP with a real-time upload progress bar. Quite useful and cool library which was adopted with very few changes and worked quite simply. Highly recommended… ( http://darrenjohnstone.net/ )
7) SobekCM_Builder. In addition to these libraries/projects used by the digital library, this library is employed (along with the SobekCM_Bib_Package, SobekCM_Library, and SobekCM_Tools) for the builder software which runs constantly in the background on another server, loading new items which are deposited into network folders or FTP folder. It also updates and builds all static pages, OAI feeds, RSS feeds, and builds the text indexes. Additionally, it reads and loads all of the FDA ingest reports from DAITSS.
6793 lines of code
858 lines of comments
26 files
3 folders
37 classes