Hi Brian,

Thanks for a very full explanation. I'll need to read through it a few more times to take it all in but I think I will be heading down the Access/SQL path but still keeping DataPerfect very much at hand too.

Thanks again.

Regards,

Michael

Brian Hancock wrote:
Hi Michael,
Most of my work comes from Access development but I am still active with DP development.... I actually like both environments, they are as different as chalk and cheese... I think Access is Microsoft's best retail application. I think SQL Server is an excellent backend database... I love working with DP. DP has a particular paradigm that stops it having the flexibility of other products. Both the presentation of data (ie its user interface), its programming interface, and its data store are intimately bound together. This paradigm makes it exceptionally good for rapid development, and it makes for a consistent user interface and programming environment so it makes it a very stable consistent platform to develop with and use. Its lockless multiuser editing of the same record makes it incredibly good for high volumes of users and in particular where there are stong possibility of users editing the same or related records. SQL Server is much closer to DP that you would think. SQL Server is a backend product in that it does not have any user interface at all... I use DP for web applications, and I treat it in a similar vein to someone using SQL Server. I have had my sporting web application working in a club for over three years with about 200 current users, Onloy a small fraction of those users use the application concurrently, however I have had at times 10 copies of DP being executed simulataneously... I have server in the vicinty of 200,00 database interactions without the slightest problem or donw time . DP is nowhere near as powerful as SQL Server, and SQL Server can be scaled up for far more concurrent users. SQL Server runs as a service on the host machine meaning it is always in memory and ready to serve requests, whereas each user interaction of DP means a sequence of applications need to be loaded into memory before the application can do anything. DOS, DP.EXE, then loading of the application STR, and after it has finished the applications need to be unloaded from memory. So why do I persist with developing in DP when there is so much overhead? well firstly for small numbers of user on average webserver hardware, it has only a slight performance penalty so the comparison to SQL Server is not so bad. But the main reason for using it is that I can develop robust complex applications far faster. In DP developing the data rules, occur via the definition of the user interface, so the data rules are less abstract, they have real and obvious meanings. For instance, take the Keep A Total function which allows you to define a field whose total can be added or subtracted to fields in related tables when a change is made to the child record. Firstly I have to say, that there is no equivalent whatsoever in Access (you have to do all that by programming at the client end, and you must do it each and every time you modify that record. This makes Access extremely prone to error, as you have to remember to code that interaction any time you write a piece of code or form that users that table. SQL Server (and other similar DB's eg MySQL, Informix, Oracle etc) have what are called Triggers. Triggers are pieces of programming that are attached at the data end of things and not in the client application, (as it effectively is in DP). You can write a Trigger to say that any time a change, addition or deletion of a record occurs that another action will be performed on another data table,and that like DP can be used in a cascading effect. The true advantage of that is that the client application developer does not need to think about what happens, all he does is add, delete or change the record he is interested in, and the consequently changes like Keep A Total happen in the background without his or her knowledge. Triggers in these types of databases are ultimately far more powerful than in DP. DP has a particular default interaction such as Keep A Total, whereas triggers for example can be used to ensure far more complex events. Ror example deleting a record, my trigger and action to copy it to an archive table, updating the username, timestampe etc, or it might act on multiple other records in multilpe other tables. One of DP's major deficiencies is its inability to truely interact with other records when you are making an edit. For example for many DP developer they have had times when they might like to check for a duplicate record before adding a record, however the issue of duplications is not always straightforward. DP allows you do do it in a fashion with indexes and exception lists, however sometimes the interaction needs to be far more complicated, For example I need to add new players into my sporting database, but I do not want to create duplications, so I want it to fail if the first and last names are the same, and additioanlly if any of the conditions such as phone number, address, date of birth, or email address are identical. In SQL Server that can be performed in a trigger. In Access you can perform that by program code on the client application, in DP the way most people interact with it, it can't be directly done, and with a web enabled DP it has to be done via the a Report (which makes it very similar to what you have to do with Access). In this area SQL Server is by far the winner. Programming multuser in Access is far more complicated. If you only have a few users, or users do not frequently edit and update the same or closely related records, then it is no problem, but soon you will run into locking issues and inconsistent updates. SQL Server is far better than Acecss because it is not the multiple instances of the client application manilpulating the data but one instance of the data engine serving multiple users, so it can manage muliple users updates far better, although you still need to add programming and administration consideration into it when in DP you will be oblivious to the potential problems as DP handles it so elegantly. When you web enable DP, rather than using DP interactively, you are then confronted with multiuser issues. Never in regards to locking, but more about inconsistent updates. For example if DP is asked to provide data to fill in an web form, you run the report, and once it is finished you are disconnected from DP, DP does not know what you might do with this data. If you simply save that data and any edits back , you might inadvertently overwirte new data in another field where because they had updated before you. The programming in DP and the web application is immensely complicated to avoid that happening. I use XML as my output data from DP. XML is self describing, and can be used by so many client applications. Although Access can export XML, it can only do it in a very crude fashion, with almost no control on things like names spaces, entitites and CDATA. SQL Sever can deliver SQL statement results in XML form, with far great control that Access but without the flexibility of DP. The reason for this is that DP does not understand XML so you need to do it very primitively within the report writer. however becase it is primitive and because the report writer in DP is absolutely amazing in is capabilities, you have total and absolute control of your output in ways that Access and SQL Server can't. In fact for SQL Server you really need a middleware application layer to do things like this. On the other hand things coming out from Access or SQL Server are standards based, and middleware layers can expose incredibly simple yet powerful web services interfaces that DP and complex CGI middleware programming I suppose could do if you ever had the time to write it. DP does not slow down with large volumes of data. Access does, and in fact Access is limited to 500mb in a single MDB file which might be where all the tables are housed.. SQL Server can outgrow both Access and DP. My web applications with DP give users everything they expect from a GUI web application. They do not know that the backend is DP, I would write the same user interactions if I were doing it with SQL Server. My applications include conections with otehr databases, extracting information from other websites, sending emails and sending mobile phone text messaging, but all of this processing occurs in my middleware layers on the server. One of the really great things aobut Access is that you can replace the Access tables with data from SQL Server... This means applications can be scaled up... Although it generally is not as straightforward as it sounds. Acecss has the cabailities to use Visual Basic programming code in queries on Access data. If you use those same functions with SQL Server then you have to bring all the data into the client application rather than have the server produce the results. You can write stored procedures on the server, and you can pass SQL statements thru to the server but then you can only use the vocabulary of SQL. In many cases complex Access applications run better as Access applications run that upsizing them to SQL. I actually have written various mini tools for managing the migration of DP to Access or the administration of DP. For example, I have updated the STE Manager application so that it can document DP panels and output the results as an XML file, where I can use various XSLT transformations to view varying reports about the application. I also have it outputting an SQL DDL (data definition language) statement so that I can reproduce the structures in SQL Server or MySQL, it is not by any means perfect, actyually they are pretty kludgey and usually the only reason I want to do that is because I can import them into ER Diagram software so I can produce ER diagrams of my DP application. The tools are pretty rough and ready as they are for my own use so I am guessing that you might not find them all that useful, although you are welcome to try them. On the other hand Access and SQL have a wealth of high quality administrative tools, from a variety of vendors. It is a shame more people are not giving the DP web applications a try because I am sure if people did they would probably think that they already have a Windows version of DP. At the conference in Los Angeles in 2004 I discussed a large DP application that I had been using for many years. Just after I arrived back in Australia the company was sold to a much larger public company who were horrified that DP and WordPerfect were being used by the largest supplier of this product and service in Australia, they thought we had far "better" technology for the results had achieved. They put our success down to dumb luck. They immedaitely set on a plan to replace the application, and to increase its functionality into being a webapp, and the timetable for that was 3 months, and $300,000 ... That was almost 4 years ago, and rumours are that the transition to VB.NET and SQL Server has cost nearly 1.5 million dollars, and is still does not have the much vaulted functionality they had planned and has only in the last few months come up to have a similar functionalist to the application they replaced albeit slower, and with less operator satisfaction. I have been involved in a patent dispute because a company managed to get a patent through a few years back but which my original 1990's DP and WP application combination had, one of the barristers who was documenting my aplication had to learn intimately how it worked, and said he could not believe how easy it was to use DP, and downloaded a copy of it and documentation from the DataPerfect.nl website so he could play with it some more himself. I hope this helps with your migrationm whichever way that is Regards
Brian
    ----- Original Message -----
    *From:* Michael Iannantuoni <mailto:[EMAIL PROTECTED]>
    *To:* Dataperfect Mailing List <mailto:[EMAIL PROTECTED]>
    *Sent:* Friday, February 22, 2008 9:00 PM
    *Subject:* [Dataperf] DataPerfect V's Access & SQL

    I have someone who wants to change from DataPerfect to Access/SQL
    for no good reason other than it's Windows and modern!

    Can someone please help me list the pro's & cons of DataPerfect
    v's Access/SQL and the DP approach v's the "all data can be
    represented in a table" approach.

    Thanks,

    Michael

    ------------------------------------------------------------------------
    _______________________________________________
    Dataperf mailing list
    [email protected]
    http://lists.dataperfect.nl/mailman/listinfo/dataperf

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

_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf
_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf

Reply via email to