Hi Community. I have some questions about Loose Coupling Pattern in the Application Design. Is Loose Coupling Pattern The Best pattern for a TDD (Test Driven Development). Can you tell other Patterns in Application Design for TDD? Please can you bring some examples about Loose Coupling?
Loose Coupling it isn't a pattern, but a programming best practice. You are talking about Inversion of Control and Dependency Injection topics. I suggest you to read the following article to introduce yourself in the question : http://www.codeproject.com/Articles/25733/Dependency-Injection-Pattern-Loose-Coupling
How many levels of separation do you want. Your WCF should be enough separation, I would have it call the DLL (which IS another program after all). There may be some security issues around you web server and the WCF communications that you may need to address.
Never underestimate the power of human stupidity
Some reasons for using a separate program.
- The dll is unstable and because of that it can cause an application exit.
- The dll is already encapsulated in an executable and in fact is easier to use that way or even can only be used that way.
- The dll is not structured for multi-threading and you want to use it in more than one thread.
1. Is the DLL a .NET Assembly?
2. Do you own the DLL?
Since it is a DLL, it is going to be loaded in the same process as your WCF service. If you are the author of the DLL or you trust the source, you should be able to safely use the DLL directly from the WCF service. However, if you don't own it or you're not sure of the source, then you can load the DLL in a separate AppDomain and access it from there, mind that it there will be a overhead though.
The "alt" tag is meant to show text when the image isn't loaded, the "title" tag is meant for a description of an image on cursor hover. IE has been doing that wrong for many years, where Firefox follows W3C standards. A properly coded webpage should have both "alt" and "title" tags. So you can use Title For that Purpose
First, You have to design architecture and algorithms.
Second, gather information of input and output and open sources and components which will will be used on your project.
Last, implement your architecture and algorithms by your hands.