473,840 Members | 1,659 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Bussines objects

Hi!
I'm making a database application and i heard from a friend that it is more
proffecional and easy to do this with bussines objects. Can anyone tell me
where i can find more info on bussines objects and how to implement them
with c#? I would appreciate any help. Thanks.
Nov 16 '05
38 3741
> Your application in the end exists only to manipulate data, the data
is the application.

Well, I wholeheartedly disagree with _that_ statement. :)

Data is how things (business entities) happen to be stored. It is
common practice to put what the business thinks of as multiple entities
into one table (or set of tables), just because they share many of the
same (data) qualities. It is also common practice to split what the
business thinks of as one entity across multiple tables (normalization,
for example).

Where I work, we are dealing with exactly this problem: designing
business objects to represent real "things" in the business, _not_
database tables! Our case is probably worst-case because we didn't
design the database tables and we aren't at liberty to change them very
much. If we used an automatic business-object-generating technology, it
would produce crap: garbage in, garbage out. We're designing the
business layer to _hide_ the baroque complexity of the data model as
much as we can. The last thing we want to do is expose it at the top
level.

Again, that's a worst case. In those cases in which you're designing
the data layer and the business layer, there is a strong correspondence
between the two, but it's by no means one-to-one.

That said, generating a second-rate business layer "automagica lly" from
a database schema may be, in the end, the most efficient path. It's the
old 80/20 rule: to get 80% of the effect you put out 20% of the effort.
If you want a "perfect" business layer then it's going to cost you big
time. If automatically generated business objects are only 80% as good
as hand-tooled ones, but come at a quarter the cost, maybe that's a
smarter way to go. :-)

In response to the OP, so far I have seen two different approaches to
building business objects in .NET.

The first is the one that Joanna outlined so well in her post of a half
hour ago: build a business layer by hand, where each object represents
an identifiable "thing" in your business. If you have a good database
design, your business objects will probably look a lot like your
database tables (but will by no means be one-for-one).

The second is the one that Microsoft seems to be pushing: have Visual
Studio generate strongly typed DataSets from the database tables, then
inherit from the resulting (automatically generated) classes and add
your business rules as additional methods or overrides of the methods /
properties that were generated by Visual Studio. I haven't tried this
myself, but it seems to be the approach that MS is pushing.

Whatever you do, whether you hand-tool your own business layer, or use
the Microsoft approach, or use some other tool to build your business
layer, the important thing is to keep business rules out of your Forms
/ Web forms code. User interface code has no business knowing that the
reason this control over here is disabled is that "orange widgets don't
have packaging" or some such thing. That sort of information belongs in
your business layer, and, as Joanna points out, filling your Forms
event handlers with business rules quickly becomes an enormous
spaghetti mess.

Nov 16 '05 #11
Joanna Carter (TeamB) wrote:
"Patrick B" <ne*******@devz oo.com> a écrit dans le message de news:
#R************* *@TK2MSFTNGP10. phx.gbl...
A "business object" is just a class that represents a real entity with
which you work. For example, if you work with customers and orders, then
you might have a Customer class and an Order class.

Check out the following link:

http://www.mygenerationsoftware.com/...s/dOOdads.aspx

The tool from MyGeneration can create C# code for business objects
automatical ly from tables in a database. Then you can bind controls in
your gui to that.

As useful as you might think such a tool is, I would seriously advise
against using database design as the foundation for class design. There are
several patterns, like foreign keys, that are not necessarily correct in OO
world.


Please, theory first, practical blabla later.
A relational model is perfectly usable as a foundation for an OO model.
The reason for that is that a relational model represents entity
definitions (Chen, Codd) you can also define in your OO model.

If you use for example NIAM/ORM (Halpin, Nijssen) to model your
relational model, you'll have an abstract model, which is used to
produce your relational model, but also is a perfect base for your OO
version of that relational model. After all, the abstract relational
model IS the modelled version of the reality.
e.g.

Database
========
SalesOrder
ID
Date
CustomerID (FK)
Tax
Total

OrderLine
ID
OrderID (FK)
Quantity
ProductID (FK)
LineValue

Classes
=======
SalesOrder
ID (unique ID held internally, not used in client code, just by storage)
Date
Customer (object not ID)
Lines (composite list only accessed through AddItem method on this class)
Tax
Total

OrderLine
ID (unique ID held internally, not used in client code, just by storage)
Quantity
Product (object not ID)
LineValue

It is usually the job of a mapping layer to maintain the solution to this
apparent mismatch between the Object Layer and the Database.


It depends how you look at things. If you like the theory behind the
relational model (you know, 30 year old proven technology) and you also
like OO languages, you can perfectly merge them, if you start with the
relational model and use that model to use it in the OO world.

A 'SalesOrder' will not be a different entity in your world than in
mine. There is no mismatch, it's just semantics.

Your class model for example, produces slow(er) code: to add the
OrderLine to the database, I have to have a live SalesOrder object.
Though it should be enough to just have the SalesOrderID.

Deleting 1000 objects from the database, same thing.

Showing 100 sales orders with the customer name in a flat list? you
need to load the customer object as well. The relational model offers
you the power to do that differently: create a new attribute set (==
entity) on the fly.

Frans
--
------------------------------------------------------------------------
Get LLBLGen Pro, productive O/R mapping for .NET: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
Nov 16 '05 #12
Joanna Carter (TeamB) wrote:
"MyGenerati on" <My**********@d iscussions.micr osoft.com> a écrit dans le
message de news: D8************* *************** **...icrosof t.com...
Your application in the end exists only to manipulate data, the data is the
application , everything line of code your write exits to flip a bit or save a
value in your database. Starting with the database and working from the
ground up is an excellent and proven way to write an application, and is how
most do it.
Database design used to be the standard, well-proven basis for non-OO
applpications; I know, I was weaned on Logical Data Structure diagrams.

But where do you put the code that manipulates the data ?
Please don't tell me you use data-aware controls directly connected to
database tables and write the code in event handletrs on the forms!! :-))


Why are some people just always grabbing an extreme end of the spectrum
to make their point. You know very well there are a lot of different
solutions to place behavior correctly.

In fact, there are 3 kinds of behavior on data:
- attribute oriented behavior (ID > 0)
- entity wide attribute oriented behavior (order date <= shipping date)
- cross entity entity oriented behavior (customer is gold customer if
ordered at least 10 orders with producs a, b or c in the last X months)

the first two are perfectly placable inside entities, the 3rd isn't, as
you run very soon into problems with fragmentation of functionality,
i.e.: you have a set of functionality defined and the implementation is
fragmented across various entities. This makes a system hard to maintain
Not all data in an application is stored in a database. In a well designed
OO application you may well have hundreds of classes that have nothing to do
with *stored* data.
No offence, but when I design a business application, I don't think in
classes or objects. I think in entities, their relation between them and
define them in NIAM/ORM models. The customer can perfectly understand
them, as they contain scentences, like "Customer Has Order", "OrderLine
belongs To Order". Throw in the good old stuff from mr. yourdon and you
can perfectly design your system, without having to go through the
awkwardness of using implementation details.

The fun thing is: the design of the application is abstracted: you can
check if it's correct without writing 1 line of code or even think of
which class has to inherit from which. The other fun thing is: if you
use these diagrams as the guides what you have to implement, you have a
1:1 projection of what you have designed onto an executable form of it:
the code and _vice versa_. This means that I can look into the code, and
go back to the abstract models because that connection is there. The
other way around is also possible.

This isn't science fiction, this is reality for system designers for
over 20 years. I know what the domain model is, and your reasoning comes
from it, but don't bring it as if before the domain model software
developers were just doing unstructured things without any theoretical
basis. On teh contrary.
The frameworks I have written to support my applications contain around 300
classes and interfaces.
that's nice, now let's look at what you have to do when I present you
an enterprise db with 1300 tables.
There is the Value Type Framework that gives me more metadata about my
business objects and their properties.

There is the Object Persistence Framework that allows me to write OO code
that knows nothing about databases because the OPF translates business
objects to/from database tables, generating SQL on the fly. I only ever use
one Query component, one Transaction component and on database component in
my entire application and frameworks combined.
So do I, though I do start from the relational model.
There is the MVP framework that allows me to replace my UIs without having
to change any of the code in either my business objects or the applications
that use them.
MVP framework, hmm. ;)

But what you describe here is just normal n-tier goodness: you write a
BL layer which acts on its own, so you can place on top of it a gui tier
which can work on its own, consuming the services of the bl tier...
that's also ancient tech, and not OO related
How would I extract those classes and interfaces from a database ?
You have a system design, abstracted. That design learns you about an
entity 'Customer'. That's an abstract thing, it's build up from
attributes, like 'CustomerID', 'CompanyName' etc.. You know, the basic
CS stuff.

That model leads to a relational model. You can use that relational
model to build your entities, as they represent the same thing: the
entity. Then you write your BL tier which represents your application
functionality and you place the 3 types of behavior related to entities
at the right places.

DONE. No-one generates a gui from a db schema, as the gui should be
designed for useability and should be the frontend for the functionality
realized by the application. So on a screen you can for example have
customer AND order information. That's perhaps nice for the screen, but
you aren't storing that info together.
What about those applications that don't use databases ?


well, what about them?
Once you have your database design you can then use that very useful AND
accurate data to generate the classes that represent that data.

MyGeneration does exactly that.

How does your software translate the Sales Order example I gave ?


Well, how does your software represent objectified relationships which
represent m:n relations?

A detailed aspect doesnt make something 'wrong', as there isn't a
'wrong' or a 'right' side here. The relational model approach has 30
years of proven technology on their side, you represent a new vision on
the matter. What's right and wrong is therefore a bit tricky to define,
as both camps will say the other side is wrong.

It's all about technical solutions for the data-access problem,
something which only exists in teh technical problem space. It doesn't
exist in the abstract functional problem space. There are different
solutions to that technical problem, and the one which fits with your
way of work depends on how you want to work, as there is no right or
wrong here. I wrote an article about that some time ago, you can find it
here:
http://weblogs.asp.net/fbouma/archiv...09/240225.aspx

Frans
--
------------------------------------------------------------------------
Get LLBLGen Pro, productive O/R mapping for .NET: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
Nov 16 '05 #13
Frans,

I am not a theoretical who likes to describes the why's.

However, in this kind of discussions I miss forever what is in Dutch called
the "Goederenst room en Geldstroom".

Can you give me the correct English names for those two.

Thanks in advance.

Cor
Nov 16 '05 #14
Ignacio Machin ( .NET/ C# MVP ) wrote:
"MyGenerati on" <My**********@d iscussions.micr osoft.com> wrote in message
news:D8******** *************** ***********@mic rosoft.com...
Starting with the database and working from the
ground up is an excellent and proven way to write an application, and is
how
most do it.

Totally agreed with you, The DB design helps you identify the potentials
entities involved in the business layer and the relationships among them,
Now where I disagree with you is that you should take into account that the
requirements of the business layer is different that those of the DB layer,
ie you don;t have a third normal form for business layer that can assure you
have a good design.
The relationship among buss. entities are differents and others patterns
exists for this layer.


It depends on how you look at things. Some will say that a 'SalesOrder'
is a business object, which aggregates the entities (!) Customer, Order,
OrderLine, Address, Employee.. so the software on the BL level can work
with a single object which embeds all the right information: the
SalesOrder. Other people will say: no, the concept of the SalesOrder as
a business object doesn't really exist. I just have entities: Customer,
Order, OrderLine, Address, Employee and these have relations, but the
behavior applied to them is only in a runtime context, e.g. the context
which process the SalesOrder, and that logic then thus works with all
these entities (in a graph or separately).

The BO approach can have advantages: you abstract away the contents of
the BO (which entities are aggregated inside it), though at the same
time, it is illogical to place the behavior of a SalesOrder outside the
salesorder. This can lead to fragmentation of behavior which spans more
than one BO. It also leads to problems if I want to use a subset of the
aggregated entities in teh BO in another context: I then have to create
another BO.

Frans

--
------------------------------------------------------------------------
Get LLBLGen Pro, productive O/R mapping for .NET: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
Nov 16 '05 #15
Frans,


Other people will say: no, the concept of the SalesOrder as a business
object doesn't really exist.


It is a legal document needed for every transaction.

In most however in our country for sure very much embedded by law (BW).

Without it not any process in a bussiness situation can exist in our
country.

The object in whatever way it is constructed represents that in the
information system.

Just my thought,

Cor
Nov 16 '05 #16
On Sat, 26 Feb 2005 12:01:42 +0100, "Cor Ligthert"
<no************ @planet.nl> wrote:
Frans,

I am not a theoretical who likes to describes the why's.

However, in this kind of discussions I miss forever what is in Dutch called
the "Goederenst room en Geldstroom".

Can you give me the correct English names for those two.

Thanks in advance.

Cor

Are these close ?

Goederenstroom: Flow of goods
Geldstroom: flow of funds
Michael Hughes - Silverton, Oregon
http://wou.ath.cx/Trivia
http://wou.ath.cx/AmateurRadio
Nov 16 '05 #17
Michael,

I am not sure, what it says is that the (let take your words) flow of funds
is opposite to the flow of goods.

This is (in my opinion) the complete business approach you need for
information because those flows are around the objects that they use (and
get there information from or let them act because of that).

Cor
Nov 16 '05 #18
"Frans Bouma [C# MVP]" <pe************ ******@xs4all.n l> a écrit dans le
message de news: eE************* *@TK2MSFTNGP12. phx.gbl...
Please, theory first, practical blabla later.
A relational model is perfectly usable as a foundation for an OO model.
The reason for that is that a relational model represents entity
definitions (Chen, Codd) you can also define in your OO model.
A Relational model may well represent entities, but it can only represent
their state, not their behaviour. The best a RDB can do with behaviour is to
have Stored Procedures littered all over the database, with no encapsulation
between data and behaviour.

*The* fundamental difference between a relational model and an object model
is that the object model aims to encapsulate data, related behaviour and
responsibility in the one entity instead of having to link those things in
application code.
If you use for example NIAM/ORM (Halpin, Nijssen) to model your
relational model, you'll have an abstract model, which is used to
produce your relational model, but also is a perfect base for your OO
version of that relational model. After all, the abstract relational
model IS the modelled version of the reality.
I would have to strongly disagree with you; an abstract relational model is
just what is says it is: an abstraction of real life bound into a model that
is more concerned with relationships (PK/FK) than it is with an accurate
representation of the real world.

There is certainly an abstract model that reflects the real world that is
neither relational no object and it is possible to derive both relational an
object models from it. But you will find that the object model requires less
'massaging' to get it to work almost exactly as the real world.
It depends how you look at things. If you like the theory behind the
relational model (you know, 30 year old proven technology) and you also
like OO languages, you can perfectly merge them, if you start with the
relational model and use that model to use it in the OO world.
That's the problem; I don't like the theory behind the relational model. It
forces the model away from reality in order to comply with the rules of a
storage mechanism.
A 'SalesOrder' will not be a different entity in your world than in
mine. There is no mismatch, it's just semantics.
The mismatch is not in the Model, it is in the implementation of the Model.
Your class model for example, produces slow(er) code: to add the
OrderLine to the database, I have to have a live SalesOrder object.
Though it should be enough to just have the SalesOrderID.
I very much doubt that, which takes longer: inserting a Sales Order record
followed by a number of Order Lines within one transaction, or inserting a
Sales Order followed by a number of Order Lines within one transaction ??

The SQL generated by my OPF is identical to that required to store entities
to tables without OO.
Deleting 1000 objects from the database, same thing.
With an OPF, same SQL, same thing.
Showing 100 sales orders with the customer name in a flat list? you
need to load the customer object as well. The relational model offers
you the power to do that differently: create a new attribute set (==
entity) on the fly.


You really haven't worked with OPFs, have you ? :-))

A well designed OPF is a highly optimised piece of kit that only loads IDs
and enough properties (usually one) to allow users to browse lists. Thus to
load a Sales Order, your generated SQL would look something like :

SELECT ID, ORDER_REF, ORDER_DATE, CUSTOMER_ID FROM SALES_ORDER WHERE ....

Certainly an object is then created for each Sales Order but not all the
properties are loaded; the rest can either be loaded on demand or the full
object will be retrieved, based on the ID, when the object is first shown
for editing. The only time that full objects are ever loaded is when one of
them needs editing; the others in the list remain as partially loaded
objects.

Object properties (like Customer) contain a Customer object that only has
the ID and Name properties loaded.

I have been working with OR mapping for many years now and certainly started
with the view that classes could be derived from tables, but my years of
experience have matured my views to realise that there is a very real
impedance mismatch between relational and object models. See my example of
the Sales Order; a relational model will treat an Order Line as a separate
entity from the Sales Order that it is a part of; the object model enforces
the composite nature of the relationship by ensuring that the only way you
can add a new Line to an Order is by asking the Order to do it for you.
Since when did you ever see a real world Order Line that wasn't contained
*within* a real world Sales Order ?

The object model also allows concepts foreign to relational modelling like
inheritance, aggregation and composition. Concepts that are very much a part
of the real world but that take a lot of effort to match in the relational
model; I should know, I have to write the OPFs that cross the mismatch :-)

Joanna

--
Joanna Carter (TeamB)

Consultant Software Engineer
TeamBUG support for UK-BUG
TeamMM support for ModelMaker
Nov 16 '05 #19
"Frans Bouma [C# MVP]" <pe************ ******@xs4all.n l> a écrit dans le
message de news: ex************* *@TK2MSFTNGP14. phx.gbl...
It depends on how you look at things. Some will say that a 'SalesOrder'
is a business object, which aggregates the entities (!) Customer, Order,
OrderLine, Address, Employee.. so the software on the BL level can work
with a single object which embeds all the right information: the
SalesOrder.
And they would be wrong. A Sales Order is a Composition that contains 1..n
Order Lines; it also holds references to but does not aggregate a Customer.
The Order Lines each describe a quantity of a Product to be allocated to the
Order and hold a reference to that Product.

Your description looks more like an unnormalised Excel spreadsheet :-)
Other people will say: no, the concept of the SalesOrder as
a business object doesn't really exist. I just have entities: Customer,
Order, OrderLine, Address, Employee and these have relations, but the
behavior applied to them is only in a runtime context, e.g. the context
which process the SalesOrder, and that logic then thus works with all
these entities (in a graph or separately).
And they also would be wrong. Does the fact that a Sales Order is put away
in a drawer mean that its Lines become separate entities, except when I want
to look at the Order ?
The BO approach can have advantages: you abstract away the contents of
the BO (which entities are aggregated inside it), though at the same
time, it is illogical to place the behavior of a SalesOrder outside the
salesorder. This can lead to fragmentation of behavior which spans more
than one BO. It also leads to problems if I want to use a subset of the
aggregated entities in teh BO in another context: I then have to create
another BO.


As I have already said the benefit of OO design is the correct allocation
and encapsulation of behaviour relevant to the data it affects. I suggest
you look at the concept of Responsibility Driven Design; Timothy Budd wrote
about this in his book Object-Oriented Programming.

Joanna

--
Joanna Carter (TeamB)

Consultant Software Engineer
TeamBUG support for UK-BUG
TeamMM support for ModelMaker
Nov 16 '05 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
8259
by: dasod | last post by:
I would like to know if my method to remove list objects is correct in this small test program. It seems to me that there might be a simplier way, but I'm afraid I don't know enough about list iterators and how they are behaving in situations like this. #include <iostream> #include <list> class Test; typedef std::list< Test* > Tlist;
11
1801
by: thechaosengine | last post by:
Hi all, I have a very general but quite significant question about objects. My question is, when should I create them? I know thats a crap question so let me explain a bit further. Lets take an example of user management against a database. Things I might like to do include:
9
1897
by: Aguilar, James | last post by:
Hey guys. A new question: I want to use an STL libarary to hold a bunch of objects I create. Actually, it will hold references to the objects, but that's beside the point, for the most part. Here's the question: I want to be able to change the references (including deleting them). Is there any way to do that besides using pointers rather than references for the STL library? I'd also prefer to avoid using const_cast, if it is indeed...
6
2585
by: Alfonso Morra | last post by:
I have written the following code, to test the concept of storing objects in a vector. I encounter two run time errors: 1). myClass gets destructed when pushed onto the vector 2). Prog throws a "SEGV" when run (presumably - attempt to delete deleted memory. Please take a look and see if you can notice any mistakes I'm making. Basically, I want to store classes of my objects in a vector. I also have three further questions:
161
7927
by: KraftDiner | last post by:
I was under the assumption that everything in python was a refrence... so if I code this: lst = for i in lst: if i==2: i = 4 print lst I though the contents of lst would be modified.. (After reading that
7
8228
by: Jo | last post by:
Hi, How can i differentiate between static and dynamic allocated objects? For example: void SomeFunction1() { CObject *objectp = new CObject; CObject object;
21
2228
by: George Exarchakos | last post by:
Hi everyone, I'd like your help... Can we have a std::list<BASEwhere BASE be the base class of a class hierarchy? I want to add to this list objects that are inherited from BASE class but not necessarily the same... class base { int x;
27
2573
by: SasQ | last post by:
Hello. I wonder if literal constants are objects, or they're only "naked" values not contained in any object? I have read that literal constants may not to be allocated by the compiler. If the Standard is saying that "object is a region of storage", I deduce from that that literal constants aren't objects because they may not be alocated as regions of storage in the memory.
14
6037
by: Jess | last post by:
Hello, I learned that there are five kinds of static objects, namely 1. global objects 2. object defined in namespace scope 3. object declared static instead classes 4. objects declared static inside functions (i.e. local static objects) 5. objects declared at file scope.
0
9699
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,...
0
10924
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10605
jinu1996
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...
1
10665
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,...
0
10301
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7023
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();...
0
5685
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4498
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
3
3139
bsmnconsultancy
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...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.