我正在为大型系统开发子应用程序。
有一家公司X创建了该系统。子应用程序由许多小公司创建,包括我工作的公司。
我们的应用程序即将完成,但有一项新要求,即我们的应用程序不得使用DLL文件,并且所有业务逻辑都应包含在.cs文件中。
为什么会有这样的要求? X公司相信它可以解决拥有太多DLL和依赖性问题的问题。由于许多子应用程序和许多不同的公司都在创建它们,因此/ bin目录和依赖项问题都会出现问题。
主要问题是许多子应用程序是相互关联的。使用面向服务的体系结构。
我知道这是一个架构问题。而且要求也来得太晚了。
我是开发人员。
更具体地说我的问题: 对于ascx.cs文件来说很简单,我可以从CodeBehind切换到CodeFile。这里没问题。
我们的图书馆存在问题。显然,我可以只复制服务器上所有相应的.cs文件,但是如何让应用程序从那里加载类而不是使用DLL库?
我从未实现过不使用DLL的asp.net网站,我不清楚我的选择是什么。
我一直在读: How to load a class from a .cs file
我希望我已经很好地解释了我的情况。
答案 0 :(得分:5)
X公司无疑有人领导曾经存在依赖性问题的开发人员。他们现在已经决定以实际汇编形式存在的任何和所有依赖都是坏的(我想我们在某些时候都有这样的经理)。
事实是:这是不可能的。这是一个愚蠢的要求,让你的生活变得更加困难。
我可以看到两个选项。
1)将所有(希望)很好地解耦的程序集及其良好的业务逻辑移除到文件后面的代码中。这很悲惨......但是一个选择。
2)继续探索从源文件中编译代码的路径。这为你提供了大量的额外开发时间......老实说,你可能最终会放弃。
为自己省去一些麻烦,只需在USB上提供完整的源代码即可。
对不起,如果这听起来很刺耳。我不羡慕你。
答案 1 :(得分:2)
提供将源代码许可给他们但价格远高于二进制文件。源代码具有更多的内在价值,因为它是您的知识产权。
还要注意公司X可以使用例如ILSpy将您的二进制文件反编译为源代码。你信他们多少不这样做?