My question is regarding referencing the open source framework. For many different purposes many of them are I personally Take advantage of many of them in a project from For example:
- Unity
- Cal / Prism
- Probability of Validation
- Enterprise Libri Logging
- Enterprise Library Exception Handling
- Carybear Enterprise Library
- All these frameworks have been very helpful in the perspective of development efforts. Although some negative aspects include:
- Tons of DLS (15 of the above list).
- The application level (non-common assemblies and new assemblies) core DLS, which can be confused) and many of the namespaces are included.
- Many of the DLL's can be problematic (I sometimes use ILMerge to reduce this and above problems, open source project lifetime - open source projects come, so None of these actively retains it, if it is an internal bug for which we need fixing or enhancement.
- Exploded "Ways to Work" We provide each of the aforementioned structures Actually, many of these frameworks overlap and provide unnecessary components and functionality. In the case of development, it can be confusing, we want a consistent implementation that is straightforward in our code base and It is easy to understand. There are many areas that work the same way in different ways. There may be trouble in this regard. This may be my biggest concern.
- If you reference these versions of different assemblies in different assemblies (i.e., an internal reference unity 1.1 and another unity 2.0) then you are in great difficulty.
Optional? Include the source code for your project (s) in a generic DLL (i.e. MyProject.Common)
There are several negative implications:
- Issued updates of the structure It is not as easy to issue the provider - you need to update your source code.
- Encapsulation of functionality - When the source code is in your hands, it is easy to break this pattern.
I know people have a lot of opinions on this ... and I want to hear them.
Thank you.
For some aspects of your problem, it may be relevant:.
Another common solution to this problem is to write an encryption layer above the required functionality, which at least protects your code from wild changes, while upgrading new versions of support libraries.
To open the source project lifetime, it should be clear which projects are healthy and which are not. For example, a project that is part of Apache or Eclipse foundation is probably healthy, while there is probably no random thing on the sourceforage. Generally, you can save this problem completely from avoiding projects that are not active.
Negative to copy code to your project:
- I know that you have a different license, but you really can not I am not a lawyer and if you If there is a problem, then you should consult one for your project, but if you are developing a proprietary system then it can be mistakenly GPLAD.
- It ruins your development environment more. You need to worry about ensuring that the copied code is being compiled properly with the correct version, and it has the correct creation script
- as you said It is very difficult to update this code.
- If you have to file bugs with open source project, it becomes more difficult to do this
- If you are not careful, then a junior developer who does not know any better Can go into code and start walking with him. Perhaps more reason is not, but this is something. Hope that helps
Comments
Post a Comment