vanilla Spring + LabKey Binary vs LabKey module development | cyrus | 2015-05-01 08:18 | |||||||||
Status: Closed | |||||||||||
Hey LabKey folks. Thanks for answering my previous questions. I greatly appreciate it. I'm looking for your input/opinion about the architecture of a project we're working on in our shop. Earlier in the production cycle, we decided to develop it as a LabKey module. The idea was to limit or eliminate all Java code and develop only a thick Javascript client to do what we needed done. Since then, we've now learned that we will have to develop some Java code and create/maintain DB tables outside of LabKey's core functions. So as the newest member of the team, coming in with limited perspective, I'm trying to wrap my head around the pros/cons of developing an application in vanilla Spring/Spring security + unmodified LabKey binary VS developing an application as a LabKey module. Here's what I've got so far: vanilla spring/spring security + LabKey Binary - PROS ------------------------------------- - Plentiful public documentation (StackExchange, Google searches, etc) - Developer portability (special knowledge of LK not required) - Newer techs (JPA, Boot, Java 8 syntax/libraries) - Easier installation/deployment (one executable jar vs LK source's relatively involved installation process) - IDE agnostic (LK source development seems to essentially require IntelliJ, we tried Eclipse but failed) - Zero manual DB config with JPA annotations (we do require some custom tables) - Easier/more straightforward unit test coverage vanilla Spring/Spring Security + LK binary CONS ----------------------------------------------- - Requires some bridge between application user accounts and LabKey accounts? (Who can access what inside LabKey?) LabKey Module - PROS ------------- - Out-of-the-box access control granularity (But maybe LK binary provides this too?) - Out-of-the-box user account management (Add, remove, change permissions, etc) - Easier visualization integration (But maybe LK binary provides this too?) - Easier SAS integration (But maybe just as easy as LK binary?) - ? LabKey Module - CONS ------------- - Java code (which we do require some of) is not guaranteed to be stable over time. As you can see, I'm not getting it and it's got me in a bit of developaralysis. So, ultimately, my question is pretty simple: "What can a developer do by developing a LabKey module that they can't do (at least not as easily) with a Spring/SpringSecurity/LabKey binary setup instead?" At what point, when hearing application requirements, would you say "Ok, building the application separately and leveraging LK binary isn't going to work for you. You need to develop a module."? |
|||||||||||
| |||||||||||