locked
Installation of DLL and BLL RRS feed

  • Question

  • Hi

     

    Before asking this question would like to give some background.

    We are planning to develop a WPF Application. This application will be used by 100 – 200 users in our organization. We have our own SQL Server.

    So below are the steps which we are going to follow in this development process:

    1. Create database of SQL Server which will be accessible in organization network.
    2. Create Visual Studio Solution with below projects

    -          Data Access Layer (Entity Framework)  - Class Library Project

    -          Business Logic Layer - Class Library Project (DAL dll will be referred in this project)

    -          Utility Layer (Some Common Supporting Functions, Global Declarations, Enums etc.) – Class Library Project

    -          Presentation Layer – WPF Application (BLL dll will be referred in this project)

    -          Installation - Setup Project

    1. When we complete the development, will install WPF application on all the client computers

     

    Have heard many times that “Some people install DAL and BLL on separate servers and only WPF application will be installed on client machine” -

    Now a question is:

    If DAL and BLL is class library projects then how do they install this? Are they talking about WCF, Web Service etc.?

    Why do they do this? How it helps in network load management?

    If anyhow they install these layers on separate servers then how do they refer it in WPF application (If layers are WCF services then no question)?

     

    I think it will go in the Tire v/s Layer discussion but still want some clarification or reading resources from experts?

    Appreciate all your help.

     

    Thank You.

    Friday, January 29, 2016 11:14 AM

Answers

  • Why do they do this? How it helps in network load management?

    https://msdn.microsoft.com/en-us/library/bb384398.aspx?f=255&MSPPError=-2147217396

    <copied>

    N-tier data applications are data applications that are separated into multiple tiers. Also called "distributed applications" and "multitier applications," n-tier applications separate processing into discrete tiers that are distributed between the client and the server. When you develop applications that access data, you should have a clear separation between the various tiers that make up the application

    <end>

    There are also security benefits in distributed applications that are using  n-tier because of the physical boundaries that must be crossed that are distributed on different machines in the infrastructure, with not everything sitting on the client machine that can be compromised easily. All the user setting at the machine has to do is click on a email that is dubious in nature to have the machine compromised.

    http://www.lhotka.net/weblog/TheCostsAndSecurityBenefitsOfNtierOver2tier.aspx

    If DAL and BLL is class library projects then how do they install this? Are they talking about WCF, Web Service etc.?

    Most likely an application server is being used where a machine can be a Web service using IIS and the BLL and DAL are installed with a legacy Web service, or it could be a WCF Web service. In either case, the two Web service types have reference to the BLL and DAL DLL(s).  The client program consumes the service.

    <copied>

    An application server is a server program in a computer in a distributed network that provides the business logic for an application program. The application server is frequently viewed as part of a three-tier application, consisting of a graphical user interface (GUI) server, an application (business logic) server, and a database and transaction server.

    <end>

    Or it could be a selfhosting WCF service (an exe) that has reference to the BLL and DAL DLL(s) that is setting on a application server. Or it is a Windows service on the application server hosting the WCF service. In either case, the client is consuming the service in a SOA solution.

    It's called SOA.

    https://en.wikipedia.org/wiki/Service-oriented_architecture

    http://www.codeproject.com/Articles/515253/Service-Oriented-Architecture-and-WCF

    If anyhow they install these layers on separate servers then how do they refer it in WPF application (If layers are WCF services then no question)?

    With a layered approach, you are installing all of it on the client machine leaving a heavy footprint on the machine. 

     I think it will go in the Tire v/s Layer discussion but still want some clarification or reading resources from experts?

    With n-tier and distributed application deployment, the client is only a consumer,  and if using SOA  in the infrastructure, then the client is consuming services. Either way,  there is a light footprint on the client machine. 

    Also in using N-tier and distributed application processing, then DTO(s) come into play where the DTO is sent through the tiers and the EF entity is left at the DAL.

    https://en.wikipedia.org/wiki/Data_transfer_object

    https://entitiestodtos.codeplex.com/

    If using n-tier and distributed application development, then client side programming at the UI becomes less complicated almost dumb including WPF and MVVM.

    Friday, January 29, 2016 12:29 PM

All replies

  • Why do they do this? How it helps in network load management?

    https://msdn.microsoft.com/en-us/library/bb384398.aspx?f=255&MSPPError=-2147217396

    <copied>

    N-tier data applications are data applications that are separated into multiple tiers. Also called "distributed applications" and "multitier applications," n-tier applications separate processing into discrete tiers that are distributed between the client and the server. When you develop applications that access data, you should have a clear separation between the various tiers that make up the application

    <end>

    There are also security benefits in distributed applications that are using  n-tier because of the physical boundaries that must be crossed that are distributed on different machines in the infrastructure, with not everything sitting on the client machine that can be compromised easily. All the user setting at the machine has to do is click on a email that is dubious in nature to have the machine compromised.

    http://www.lhotka.net/weblog/TheCostsAndSecurityBenefitsOfNtierOver2tier.aspx

    If DAL and BLL is class library projects then how do they install this? Are they talking about WCF, Web Service etc.?

    Most likely an application server is being used where a machine can be a Web service using IIS and the BLL and DAL are installed with a legacy Web service, or it could be a WCF Web service. In either case, the two Web service types have reference to the BLL and DAL DLL(s).  The client program consumes the service.

    <copied>

    An application server is a server program in a computer in a distributed network that provides the business logic for an application program. The application server is frequently viewed as part of a three-tier application, consisting of a graphical user interface (GUI) server, an application (business logic) server, and a database and transaction server.

    <end>

    Or it could be a selfhosting WCF service (an exe) that has reference to the BLL and DAL DLL(s) that is setting on a application server. Or it is a Windows service on the application server hosting the WCF service. In either case, the client is consuming the service in a SOA solution.

    It's called SOA.

    https://en.wikipedia.org/wiki/Service-oriented_architecture

    http://www.codeproject.com/Articles/515253/Service-Oriented-Architecture-and-WCF

    If anyhow they install these layers on separate servers then how do they refer it in WPF application (If layers are WCF services then no question)?

    With a layered approach, you are installing all of it on the client machine leaving a heavy footprint on the machine. 

     I think it will go in the Tire v/s Layer discussion but still want some clarification or reading resources from experts?

    With n-tier and distributed application deployment, the client is only a consumer,  and if using SOA  in the infrastructure, then the client is consuming services. Either way,  there is a light footprint on the client machine. 

    Also in using N-tier and distributed application processing, then DTO(s) come into play where the DTO is sent through the tiers and the EF entity is left at the DAL.

    https://en.wikipedia.org/wiki/Data_transfer_object

    https://entitiestodtos.codeplex.com/

    If using n-tier and distributed application development, then client side programming at the UI becomes less complicated almost dumb including WPF and MVVM.

    Friday, January 29, 2016 12:29 PM
  • Thank you so much for your quick reply.

    Sunday, January 31, 2016 6:03 PM