473,395 Members | 1,497 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

To OO or not to OO

I don't know if this has been covered here, but a search didn't reveal
a good fit. Sorry in advance and all that.

SCENARIO. Small software house used to building small, bespoke apps
using VB6, Access VBA etc.

The customer has two related products built using VB5 and VB6, which
they wish to amalgamate into a shiny new product using VB.NET FYI, it
will use a SQL Server backend, Terminal Services etc. A thin-client
thang.

Three developers have been given the task of building this. One has
about a year's experience of ASP.NET, the other two are more or less
new to .NET None has any substantial OO experience. The required
system has the same forms and logic as the old system, so there is a
good chance that business processes can be just cut and pasted from
the previous apps.

The new app will have about 70 forms and 30 reports.

HOWEVER. The software company tend to build similar products for
different clients, and think that building up a set of generic base
classes for use in all projects would be a good idea. The bible for
this would be Rockford Lhotka's 1 on 1 VB.NET Business Objects. This
would require a) one or more people to design the classes and b) the
team doing the current project to be able easily to use them. The
team doing the project are nervous about this, and would rather just
build the app in the same old way that VB always worked, since that
would mean that the maximum code could be reused from the old system,
and would do away with the learning curve and debugging problems
associated with complex OO inheritance issues etc.

Any thoughts?

TIA

Edward
--
The reading group's reading group:
http://www.bookgroup.org.uk
Nov 20 '05 #1
4 1164
On 29 Oct 2003 00:46:00 -0800, te********@hotmail.com (Edward) wrote:
I don't know if this has been covered here, but a search didn't reveal
a good fit. Sorry in advance and all that.

SCENARIO. Small software house used to building small, bespoke apps
using VB6, Access VBA etc.

The customer has two related products built using VB5 and VB6, which
they wish to amalgamate into a shiny new product using VB.NET FYI, it
will use a SQL Server backend, Terminal Services etc. A thin-client
thang.

Three developers have been given the task of building this. One has
about a year's experience of ASP.NET, the other two are more or less
new to .NET None has any substantial OO experience. The required
system has the same forms and logic as the old system, so there is a
good chance that business processes can be just cut and pasted from
the previous apps.

The new app will have about 70 forms and 30 reports.

HOWEVER. The software company tend to build similar products for
different clients, and think that building up a set of generic base
classes for use in all projects would be a good idea. The bible for
this would be Rockford Lhotka's 1 on 1 VB.NET Business Objects. This
would require a) one or more people to design the classes and b) the
team doing the current project to be able easily to use them. The
team doing the project are nervous about this, and would rather just
build the app in the same old way that VB always worked, since that
would mean that the maximum code could be reused from the old system,
and would do away with the learning curve and debugging problems
associated with complex OO inheritance issues etc.

Any thoughts?

TIA

Edward


I'm an OO puritan. If you're going to go the OO route, it should be
designed by someone who knows OO very well. The application you
mention has quite a large interface, and that is always the slowest
part in development.

Your developers may or may not be aware that some things that used to
work in previous versions simply don't work in VB.NET. The language is
quite different (as well as the API).

The only way to ensure speedy development given your circumstances is
to reduce the height of the learning curve. Either abandon .NET (not
good), delay and retrain (quite good, if it's an option) or Skunkworks
the project from the outset (bad practice but, hey, that's how they
build Netscape).

There are a million documents on Business Objects, Object Layers,
Smart Objects etc. etc. but most papers are waste of time. Some design
patterns can increase developer workload by a factor of 20 - which
will slide any project. The basic OO approach is enough to get you
through anything, and there's less piss and wind.

I recommend a tight control approach. Get your technical lead to write
a coding standards document, and have weekly code-reviews after the
project has started, chaired by the same. The project manager or
stakeholder should not attend those meetings. Decisions in these
meetings can lead to production of reusable code, normalised standards
and dissemination of knowledge. All Good Things.

As a practical approach, the likes of Business Objects is not
warranted in these circumstances; you're doing what is essentially a
port, and not a complete redesign and redevelopment (that would be
nuts). To be crude: blat it out as fast as you can using any way you
can. Once done, factor the code (this minimises testing time by you
only unit-testing the objects that change).
Rgds,
Nov 20 '05 #2
Cor
Andy,

Nice written, I did try to write something like that, but was afraid to get
a long response from all OO puritans, so I stuffed it again.

Cor
Nov 20 '05 #3
_Andy_ <wi******@nospamthanks.gov> wrote in message news:<h9********************************@4ax.com>. ..
On 29 Oct 2003 00:46:00 -0800, te********@hotmail.com (Edward) wrote:

<snip>
I'm an OO puritan. If you're going to go the OO route, it should be
designed by someone who knows OO very well. The application you
mention has quite a large interface, and that is always the slowest
part in development.

Your developers may or may not be aware that some things that used to
work in previous versions simply don't work in VB.NET. The language is
quite different (as well as the API).

The only way to ensure speedy development given your circumstances is
to reduce the height of the learning curve. Either abandon .NET (not
good), delay and retrain (quite good, if it's an option) or Skunkworks
the project from the outset (bad practice but, hey, that's how they
build Netscape).

There are a million documents on Business Objects, Object Layers,
Smart Objects etc. etc. but most papers are waste of time. Some design
patterns can increase developer workload by a factor of 20 - which
will slide any project. The basic OO approach is enough to get you
through anything, and there's less piss and wind.

I recommend a tight control approach. Get your technical lead to write
a coding standards document, and have weekly code-reviews after the
project has started, chaired by the same. The project manager or
stakeholder should not attend those meetings. Decisions in these
meetings can lead to production of reusable code, normalised standards
and dissemination of knowledge. All Good Things.

As a practical approach, the likes of Business Objects is not
warranted in these circumstances; you're doing what is essentially a
port, and not a complete redesign and redevelopment (that would be
nuts). To be crude: blat it out as fast as you can using any way you
can. Once done, factor the code (this minimises testing time by you
only unit-testing the objects that change).
Rgds,


Brilliant. Just what I wanted. If you don't mind, I will dolly this
up into a memo and this can form the basis of my thoughts (such as
they are) on the matter.

Edward
--
The reading group's reading group:
http://www.bookgroup.org.uk
Nov 20 '05 #4
Edward,
In addition to Andy's comments, I totally agree, OO is the route!

In addition to Lhotka's book, which may be a good framework for the core of
your project. However an OO approach around DataSets may be an less time
consuming development route.

I would recommend (in this order):

"OOP with Microsoft Visual Basic .NET and Microsoft Visual C# .NET - Step by
Step" by Robin A. Reynolds-Haertle, from MS Press. Introduces the "how to"
of OOP in VB.NET rather well.

"Visual Basic Design Patterns - VB 6.0 and VB.NET" by James W. Cooper, from
Addison Wesley. Introduces the "how do I" of OOP design patterns to VB.NET &
VB6 rather well, its a good companion to the GOF Design Patterns

"Design Patterns - Elements of Reusable Object-Oriented Software" by the GOF
(Gang of Four = Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides),
from Addison Wesley. Introduces and documents the "core" design patterns,
think of design patterns as pre defined concepts in how to do things in OOP.
The Cooper book puts a VB.NET twist on this book.

"Patterns of Enterprise Application Architecture" by Martin Fowler, from
Addison Wesley. Introduces

"Refactoring - Improving the Design of Existing Code" by Martin Fowler, from
Addison Wesley. Introduces Refactoring http://www.refactoring.com which "is
a technique to restructure code in a disciplined way", which allows you to
take your existing code and carefully and methodically modify it to a more
OOP design. In other words you can upgrade your VB6 project, then over time
apply Refactoring to move it to a 'pure' VB.NET OOP design.

Of course there is a plethora of articles at http://msdn.microsoft.com &
http://msdn.microsoft.com/architecture

Hope this helps
Jay

"Edward" <te********@hotmail.com> wrote in message
news:25**************************@posting.google.c om...
I don't know if this has been covered here, but a search didn't reveal
a good fit. Sorry in advance and all that.

SCENARIO. Small software house used to building small, bespoke apps
using VB6, Access VBA etc.

The customer has two related products built using VB5 and VB6, which
they wish to amalgamate into a shiny new product using VB.NET FYI, it
will use a SQL Server backend, Terminal Services etc. A thin-client
thang.

Three developers have been given the task of building this. One has
about a year's experience of ASP.NET, the other two are more or less
new to .NET None has any substantial OO experience. The required
system has the same forms and logic as the old system, so there is a
good chance that business processes can be just cut and pasted from
the previous apps.

The new app will have about 70 forms and 30 reports.

HOWEVER. The software company tend to build similar products for
different clients, and think that building up a set of generic base
classes for use in all projects would be a good idea. The bible for
this would be Rockford Lhotka's 1 on 1 VB.NET Business Objects. This
would require a) one or more people to design the classes and b) the
team doing the current project to be able easily to use them. The
team doing the project are nervous about this, and would rather just
build the app in the same old way that VB always worked, since that
would mean that the maximum code could be reused from the old system,
and would do away with the learning curve and debugging problems
associated with complex OO inheritance issues etc.

Any thoughts?

TIA

Edward
--
The reading group's reading group:
http://www.bookgroup.org.uk

Nov 20 '05 #5

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

Similar topics

3
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL)...
2
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues...
3
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which...
0
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. ...
1
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the...
4
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the...
1
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url ...
2
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value...
3
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
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...
0
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,...
0
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...
0
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...

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.