Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SIMPLE way to migrate to n-tier w/out long learning curv
Message
From
26/04/2002 09:06:33
 
 
To
25/04/2002 23:39:14
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Miscellaneous
Thread ID:
00649294
Message ID:
00649538
Views:
16
David,

Please feel free to contact me about ebooks, epublishing, or any other publishing. 95% of my business is in publishing, and I'm quite familiar with it. And I am particularly familiar with ebooks and e-publishing. I could likely provide some useful guidance in that realm.

Take care,

David

>David,
>
>Thanks for the detailed reply. This is exactly the type of guidance I was looking for. A bitter pill, I guess, and not what I wanted to hear, i.e. that I can't really just use a 'small piece', but, a pill that I apparently must swallow, so I will heed your advice.
>
>BTW, I took a look at your profile information, and I see that you are involved in ePublishing, eBooks, etc. A few months back I had a prospect that publishes Journals and other materials via PDF. They were looking for a way to control unauthorized distribution of their materials. We looked into the Adobe Content Server/eBook reader, etc. for them. But they decided it was too expensive. I will email you separately on this - OK? It might be possible to resurrect the business opportunity if there is a cost-effective solution for them.
>
>
>>Hi David,
>
>
>
>>
>>I recently took the plunge into MM, and all and all it has been a great experience, and opened my eyes to new ways of doing things. The user's guide that comes with it is alone an exceptional work - both in how to use the framework, but more in n-tier design.
>>
>>That said, there are some definite growing pains which I imagine you will experience with any framework. First, if you are not very familiar with OO, you're going to find yourself cramming your head with an overwhelming amount of information. I've learned more in the 6 months since I started using MM and I was already quite literate in OO design concepts.
>>
>>So if you are in a rush to learn, I'd recommend taking Kevin's MM class. I haven't taken it myself, but I've spoken with a few who have and who unanimously agreed it was well worth it. It's a 1 week and $2,000 investment (better check me on that) which I didn't think I could afford, and I was mistaken. In terms of time, I think it would have saved me those 5 days many times over. In terms of money - well, time is money.
>>
>>Next, I would say DO NOT try to build framework pieces into an existing app. I did it, and it was a nightmare from start-to-finish. I finally just sucked it up for a couple of weeks and converted all my stuff. If you insist on doing it, buy lots of Xanax and use the framework as your foundation, and import your forms into the framework. If you go the other way and try to bring framework pieces into your existing app, you are asking for trouble. Lots of trouble. Don't do it. I would think this is true with any framework.
>>
>>What you could do is use the framework to crunch some data for you. The business objects are the best part of MM in my opinion. They are very cool, and the easiest part to learn (the interface is what has killed me so far). You could create stand-alone COM objects the MM way, and call on them to do some batch processing kind of stuff for you.
>>
>>As to whether you should try to roll your own - I did that, too. I took an approach similar to what you mention below, using forms to create data sessions. It was a nice learning experience, but in the end it wasn't worth it. Kevin has clearly been tweaking MM and peformance-wise, it's pretty impressive. And he's got lots of developers pushing it to the limits, forcing it to be as good as it can be. I have found that in using MM, I've had to become pretty intimately familiar with it. Seeing how Kevin does stuff has been a tremendous learning opportunity. I see now that rolling your own is very much like re-inventing the wheel - why bother.
>>
>>One final piece of advice - you are about to undergo a major learning experience. There are some great books to help you on your way. For learning OOP, Markus Egger's book from Hentzenwerke is truly exceptional. Read it from cover to cover, and do not just gloss over his section on modeling (like I did first time around). Next, read UML Distilled from Fowler. It is entirely about modeling. I believe that modeling is a key component to any great OOP design.
>>
>>One final final piece of advice - don't build something under deadline with a framework until you have a basic understanding of the framework. It will mean many late nights and the embarassment of begging your clients for extra time. If you don't take a class, give yourself several months of learning curve and start simple. It will be worth it.
>>
>>Good luck!
>>
>>David
>>
>>
>>
>>
>>>I am in the process of evaluating the various commercial frameworks and trying to figure out a way to integrate one of them (have looked at Codemine and MM so far) into my EXISTING applications, and to utilize them for NEW development.
>>>
>>>
>>>But more importantly, I am trying to determine if it would be feasible to utilize the most important design principles of the frameworks, in my existing work, especially with respect to the concept of defining separate tiers for UI, application and data, without completely abandoning my existing code, with the intention of EVENTUALLY (over the course of the next 3 to 6 months) making FULL use of one of the frameworks.
>>>
>>>Please bear with me as I am new at most of these concepts, and may be 'missing the boat in some (or all!) areas.
>>>
>>>My SHORT TERM, not so ambitious goal, is to start, today, with using techniques that will lend themselves to 'minimizing the pain' of migrating code to n-tier, or a particular framework, WHEN I am ready. At the current time I simply don't feel that I have an adequate understanding of OOP, Business objects, rules classes, etc, to dive in and start trying to use one of the frameworks.
>>>
>>>I have looked at both MM and Codemine with the intention of determining whether I could just start out with a 'small piece', either by making use of the concepts, or by using the classes, and not utilize the rest, for now. The most important piece to me, it seems, is the construction of a data environment that is separate from the form. Could one use the data environment/management classes of MM or Codemine only, without all the other stuff? For now, I don't feel I have time to dive into/learn about object oriented menu managers, forms collection managers, error handlers, etc. I also don't have complex needs in the area of toolbars, and managing complex interactions between forms. At the current time, most of my development is with Accountmate, and accounting package that has a fairly simple set of class libraries, a simple form class and set of control classes, and lookup container/controls, and a 'sort of' toolbar class that implements a set of save/cancel,ec. buttons inside a
>>>container.
>>>
>>>Here is another newbie question: Why do I need a separate business object for each table or cursor, as appears to be the preferred way of doing things with MM (I'm not sure about Codemine)? Why can't the data environment itself, at the 'macro' level be considered a single business object that can be manipulated? Or why isn't a cursor object itself considered to be a business object. Why can't I just have one object that has add, edit, delete and find methods, and a property for what cursor it operates on? Why can't I also just have another object, that I would call a 'transaction object', that operates on the form/transaction as a whole, with savetransaction, deletetransaction and canceltransaction methods?
>>>
>>>Again, another area that I am hazy on: If I understand the theory correctly, one OOP idea is that the business object is a separate layer from the data, and as such doesn't know anything about the 'type' of data that it will ultimately map to, and that there will be some translation layer (which I don't really understand) that will load base table data in and out of the business objects. But again, it seems to me that the cursor itself in a data environment should be the business object?? It seems that the cursor should be based upon a view, or even a manually created cursor, and then the cursor object will be abstracted from the ultimate data source, whether it is local vfp data, sql server data, etc??
>>>
>>>
>>>And here is another newbie question: I think I understand that the idea of separating the data environment from the form is so that a separate object, or set of objects can be created as a com server. But why can't I just mark my form class as OLE Public, instantiate my form as com server, and call methods of the form. If I understand correctly, I can't do anything in a VFP COM Server that outputs to the UI, but, I'm guessing that I can just keep my form invisible. The OLE Public checkbox is 'there for the checking' when creating a form class. What would be wrong with doing this?
>>>
>>>For starters I would be satisfied with a simplified approach and set of guidelines for 'not mixing' interface code with data manipulation code
>>>
>>>I have read many threads on here about people's experience with frameworks. From what I have seen so far, MM and VFE are highly regarded, and are descendants of codebook. Codemine is also highly regarded, and from what I've seen and read so far, looks like it will be considerably easier to utlize, at least initially. With respect to whether the greater learning curves for MM or VFE are worth it, or provide benefits that are not found in Codemine, is not something that I can speak to right now, as I simply don't understand the concepts well enough, yet.
>>>
>>>Any and all suggestions would be appreciated at this point.
Previous
Reply
Map
View

Click here to load this message in the networking platform