HI everyone,
I think i am on the right path but if someone could confirm it, that
would be great.
In my business Layer i have my business object, for this example,
called User.
User has about 50 properties.
To save the user object in my business layer i call the factory and
pass in the object
Dim uf as new userFactory
Dim u as user
uf.save(u)
Now because the DAL and business layer shouldnt care about eachother, i
dont want to pass in a business object into my DAL, so at the moment i
pass in each property as a parameter to my save function in my DAL, is
this right??
'Save function in DAL
Function Save(userid as integer, firstname as string, lastname as
string, ............)
'Save function in BL
Function Save (u as user)
dim dal as new dataservice
dal.save(u.id, u.firstname, u.lastname, ..........)
End Function
Does this make sense? Hopefully i am right, but would like to know
what approach everyone takes. Thanks
Aug 24 '06
10 1391
Yes kevin, i understand that, my save method is actually called Update
(sorry for the confusion), but what you are saying is that i should
pass in a DataRow interface object into the data layer instead of
variables??
That way the data layer would check for the columns on the input'd
tablerow??
No, I never said that you should pass a DataRow to any method in your data
layer. A DataRow doesn't have columns, nor does it contain any information
about the table or database it came from.
Check out the following: http://www.microsoft.com/downloads/d...displaylang=en
--
HTH,
Kevin Spencer
Microsoft MVP
Chicken Salad Surgery
It takes a tough man to make a tender chicken salad.
"Nemisis" <da*********@ho tmail.comwrote in message
news:11******** **************@ m73g2000cwd.goo glegroups.com.. .
>
Kevin Spencer wrote:
>The second method you posted depends upon knowing what fields are in the table, what table you're updating, and what the database used is. Therefore, it's not a good Data Layer method. It can only be used with the Business layer for that project. You want to create generic functions in the Data layer that perform database operations only. For example, there is no database operation called "Save." Database operations include things like SELECT, UPDATE, DELETE, CREATE TABLE, etc. In the case of "Save" you're talking about doing an UPDATE.
Now, if you want to have a "Save" method in your business class that uses a generic UPDATE method in your Data layer, that's fine.
-- HTH,
Kevin Spencer Microsoft MVP Chicken Salad Surgery
It takes a tough man to make a tender chicken salad.
"Nemisis" <da*********@ho tmail.comwrote in message news:11******* *************** @i42g2000cwa.go oglegroups.com. ..
>
Kevin Spencer wrote: The business layer is always going to have to know something about the data layer, just as the UI layer must know something about the business layer. It is the data layer which should not need to know anything about the business layer (so you can use it in multiple solutions). The business layer must know the data layers API in order to use it.
Therefore, the data layer function should take raw data and be able to perform any database operation with it, without knowing what the data is. That is, your data layer should contain abstract data functionality that is not specific to any database or data store, and present a uniform API to any client application.
Here's an example from our in-house data class library:
public static DataTable GetDataTable(st ring query, string tableName, string connectionStrin g) { SqlConnection conn = null; SqlDataAdapter adapter = null; DataTable table = new DataTable();
try { conn = new SqlConnection(c onnectionstring ); adapter = new SqlDataAdapter( query, conn); adapter.Fill(ta ble); if (tableName != "") table.TableName = tableName; return table; } catch (Exception ex) { Utilities.Handl eError(ex); throw new DataException(" Error fetching DataTable", query, cstring, ex); } finally { if (conn != null) conn.Dispose(); if (adapter != null) adapter.Dispose (); } }
This method returns a DataTable, but knows nothing about the table, the data, or the database being used. The business layer knows the signature of this method, and can call it whenever it needs a DataTable of data fetched from its data store.
Kevin,
I am confident about the load methods as i load all my data to the BLL
using datasets, but it is more on saving methods from the BLL to DAL.
Can you explain a lil more on this?
I would like to know whether the DAL save method, should either accept
a DataRow (IDataRow), or a series of parameters, thus.
Save(tr as TableRow)
Or
Save(id as integer, name as string, ref as string, ............)
At current i am doing it the second way, but am feeling that maybe i
should be doing it the first way. Any views?
Yes kevin, i understand that, my save method is actually called Update
(sorry for the confusion), but what you are saying is that i should
pass in a DataRow interface object into the data layer instead of
variables??
That way the data layer would check for the columns on the input'd
tablerow?? This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Patchwork |
last post by:
Hi Everyone,
Please take a look at the following (simple and fun) program:
////////////////////////////////////////////////////////////////////////////
/////////////
// Monster Munch, example program
#include <list>
|
by: Proteus |
last post by:
Any help appreciated on a small perl project I need to write for
educator/teaching purposes. I have not programmed perl for some time, need
to get up to speed, maybe some kind souls hrere will help me on
this project? It looks to be a simple project, and I will start relearning
pearl, but any help appreciated!
I need to read and parse a simple text file (INPUT) containing multiple
choice quiz questions (with titles) and answers, and...
|
by: Raskolnikow |
last post by:
Hi!
I have a very simple problem with itoa() or the localtime(...).
Sorry, if it is too simple, I don't have a proper example.
Please have a look at the comments.
struct tm *systime;
time_t currentTime;
char day;
char month;
|
by: Peter |
last post by:
Hello
Thanks for reviewing my question. I would like to know how can I programmatically select a node
Thanks in Advanc
Peter
|
by: abcd |
last post by:
I am trying to set up client machine and investigatging which .net
components are missing to run aspx page.
I have a simple aspx page which just has "hello world" printed....
When I request that page like http://machinename/dir1/hellp.aspx
instead of running that page it starts downloding ...whats missing here
....why the aspx engine not running the page....
| |
by: dba_222 |
last post by:
Dear Experts,
Ok, I hate to ask such a seemingly dumb question, but I've
already spent far too much time on this. More that I
would care to admit.
In Sql server, how do I simply change a character into a number??????
In Oracle, it is:
|
by: Giancarlo Berenz |
last post by:
Hi:
Recently i write this code:
class Simple
{
private:
int value;
public:
int GiveMeARandom(void);
|
by: galiorenye |
last post by:
Hi,
Given this code:
A** ppA = new A*;
A *pA = NULL;
for(int i = 0; i < 10; ++i)
{
pA = ppA;
//do something with pA
|
by: Phillip Taylor |
last post by:
Hi guys, I'm looking to develop a simple web service in VB.NET but I'm
having some trivial issues. In Visual Studio I create a web services
project and change the asmx.vb file to this:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
<System.Web.Services.WebService(Namespace:="http://
wwwpreview.#deleted#.co.uk/~ptaylor/Customer.wsdl")_
|
by: Chris M. Thomasson |
last post by:
I use the following technique in all of my C++ projects; here is the example
code with error checking omitted for brevity:
_________________________________________________________________
/* Simple Thread Object
______________________________________________________________*/
#include <pthread.h>
extern "C" void* thread_entry(void*);
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
| |
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |