-----------------------------------------------------------

New Message on BDOTNET

-----------------------------------------------------------
From: LovedJohnySmith
Message 2 in Discussion

Deepak: 
              First isolate your application as follows: 
    Business Services
    
     Business Components 
    Business Entities 
   Business Services 
This is the code for the solution, containing constraints to support the 
business rules. You may decide to employ some or all of the following:         
Business components: used when functionality must be reused over several 
business processes or when robust actions and calculations must be performed 
against data access and APIs.     Business workflows: needed when you are 
managing multiple steps and long-running transactions. BizTalk server is the 
recommended platform for designing the proper workflow.    Business entities: 
entities, which represent business concepts, define real life business 
relationships and data.       Service interface: enables service agents to 
access your BSL through a channel such as HTTP or TCP/IP.  
Looking at 1,3 and 4 in more detail: Business Components  
Business objects should be reused and methods accordingly broken apart whenever 
code might prove useful later. Business components can be tightly coupled or 
loosely coupled. The loosely coupled effect is achieved when implementing a 
workflow or service interface over the BSL. Business components should:        
Be invoked by the USL, the service interface or other business services         
Be the root of transactions     Validate input and output       Call the DAL to 
perform actions against the database    Call external services through service 
agents   Call other business components and instantiate workflows        Raise 
an exception to the caller if anything happens in an atomic transaction  
Consider whether you require transactional business services. If yes, look at 
Enterprise Services and consider the following:           Remoting channel 
restriction: HTTP and DCOM-RPC are the only channels supported.        
Components must be strong named.        Components need to be self registering 
or a special deployment step needs to be taken.          The Enterprise 
Services model is available for security, as well as .NET based security. 
Business Entities  
Business entities are data representations of actual objects in your company. 
Typically, entities are representations of your database table structure, but 
they do not usually conform to one specific table. Instead, they are 
denormalised and represent a small entity schema. Often it is wise to design 
your business entities to be stateful objects containing a DataSet or an XML 
representation available throughout the object's lifetime.  
Business entities should access the database via the DAL, which handles cleanup 
and any special auditing features. Business entities are a low level entity 
view and are meant to be aggregated to perform specific functions; transactions 
are not recommended at this level. Business entity design recommendations 
include:          Entities should map to data relationships. If a custom entity 
is needed, first verify that the data cannot be obtained by aggregating two 
entities in the business component member of the BSL.         When constructing 
business entities, deriving all common logic from a base class is considered 
best practice.   Maintenance of state should be in DataSets or XML, not 
collections or structs.          Implement interfaces that expose common 
characteristics of all business entities.       Business entities should 
enforce all constraints and validations needed for a specific entity.          
Display validation rules to callers, but do not allow them to change any rules. 
A validation rule could be an XSD schema applied to the XML.  
An example: business entities for an ecommerce site can consist of Order, 
Customer, Product etc. Shopping cart is not a business entity; rather it is a 
component because it aggregates the product customer and order entities to 
define the cart. Business Service Interfaces  
Business service interfaces provide functionality to a remote caller via the 
BSL. Because the USL is being bypassed alternative security must be provided 
and only the required functionality should be exposed. Design capabilities for 
your service interface are:    Service interfaces can provide caching, mapping 
and schema transformations. Services implementing business logic are not 
recommended.   Services should be designed with interoperability in mind; so 
they should support industry standards and provide the most accepted transfer 
method that is sure to be supported in the future.          When business 
components are deployed on a server separate from the service interface you 
might consider giving the service interface its own security policy for 
authentication and authorisation.     Services can be transactional.          
You might consider providing a transparent service so that changes made at the 
BSL to business components are automatically available through the service.  
Web Services are the most common way to implement a business service interface. 
 
For more information, please have a look at the following site 
http://msdn.microsoft.com/architecture/ 
Thanks, 
Smith 
http://spaces.msn.com/Johnysmith

-----------------------------------------------------------

To stop getting this e-mail, or change how often it arrives, go to your E-mail 
Settings.
http://groups.msn.com/bdotnet/_emailsettings.msnw

Need help? If you've forgotten your password, please go to Passport Member 
Services.
http://groups.msn.com/_passportredir.msnw?ppmprop=help

For other questions or feedback, go to our Contact Us page.
http://groups.msn.com/contact

If you do not want to receive future e-mail from this MSN group, or if you 
received this message by mistake, please click the "Remove" link below. On the 
pre-addressed e-mail message that opens, simply click "Send". Your e-mail 
address will be deleted from this group's mailing list.
mailto:[EMAIL PROTECTED]

Reply via email to