Jump to content
Claris Engage 2025 - March 25-26 Austin Texas ×

This topic is 7560 days old. Please don't post here. Open a new topic instead.

Recommended Posts

Posted

Hello,

I am about ready to move away from Instant Web Publishing, which I have found to be an instructive exercise but one with no results. Having almost completed a self-taught course in HTML I am ready to figure out what would be the best programming language to use to enable FileMaker for the web. There are a lot of choices and I

Posted

Re: Why use Filemaker.

Filemaker is a great "In-house" real-time, client-server, multiuser, database management system. Its "http" server is lacking strong middleware support, this includes the lack of a capability for complex queries.

If you are using it for its strength, then you can provide complementary "http" access to the same database.

If you need only "http" access then Filmaker may not be for you.

All the best.

Garry

Posted

Tom, I'm afraid I can't help you much, being essentially in the same boat. I've gone a little further down the path, having done a few CDML web sites, but basically only simple ones. I found FileMaker's CDML to be a well designed language, fairly easy to use; but lacking in functionality. A little bit of JavaScript (and that's about all I know) helps considerably. FileMaker's decision to stop developing CDML is understandable, considering what it would take to make it on a par with anything else, but it does leave beginning FileMaker web designers a bit in the dark.

As far as XML and FileMaker, from what I know (which is just what I read in the manual and some messing about), it appears to provide some of the functionality of CDML, using quite similar tags. But that's just the basics. To do anything complex you'd have to use XSLT, which can do many things well, such as basic web list layouts, but doesn't do everything so well, unless you're a genius, which I'm not.

Then there's PHP, which is more of a full-on programming language than just a mark-up language. There is a "class" written to work more easily with FileMaker databases, at:

http://www.iviking.org/FX.php/

But you quickly find that you're no longer in "tag land," you're loading instances of the database file, reading and manipulating arrays (well, the example does, and I watch; I couldn't write it myself yet). PHP has the power of a full language, as well as some of its learning curve. There's good documentation of the basic language at:

http://www.php.net/manual/en/

Lasso, on the other hand, appears (from almost none of it I've seen) to be the epitomy of tag-land, having tags that can do just about anything, as well as the ability to run PHP, XML and tie into SQL databases.

Like you say, it has a price tag that's a little intimidating. But also, as Anatoli pointed out, it can provide a one-click install and security configuration of Lasso and mySQL.

I think if I had a complex web site to do (ie., get paid well to do), I'd go the Lasso route. I think you'll get there quicker. But if you enjoy learning languages, and XML, XSLT and PHP are well-done, to say the least, then you should press on with them. Probably it would be good to have the basics of each; which is not that hard. It's using them in the real world that's hard.

I would love to hear the pros and cons, and personal experience of anyone who knows this stuff, esp. anyone who knows all of it ???-) People like Tom, myself, and many others, are in a quandry; our FileMaker knowledge is practically useless in the web realm.

Posted

I have worked with XSL and XML for about 6 months straight now. I feel that once you start working with it for a couple of weeks you start to progress at a fast pace. There isn't just XSL to work with XML though. There is XSL:fo which is an extension of XSL in that it formats the html document that is generated with XML by splitting the whole page into parts. This in turn makes pages look much, MUCH more professional. It seems very easy from what I have seen of it so far, because it just involves understanding the whole concept, then learning the new tags, then adding in the new fo namespace in the head of the document.

Also there is xforms which make working with forms using xsl much easier. This entesion of xsl looks much harder to understand, especially the concept of what it actually does.

I would definitly recomend xsl and xml. It is becoming the universal standard as many sites are now using it. It is in its early stages though. The release of xml/xsl should have been delayed a while until they fixed some bugs but what can we do, its out now.

Justin Grewe

Posted

Before I can comment on languages, I have to lay a little ground work on how FileMaker's Web Companion works. Web Companion (WC) plays many different roles, such as HTTP Server, CGI, and Scripting Language.

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

Laying the foundation...

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

HTTP Server

WC acts as an HTTP Server, which receives, queues, and responds to HTTP requests. HTTP servers do not perform actions on the server, but merely fetch files from the file system (typically static HTML files) and return them to the users. HTTP servers can also be configured to forward certain requests to programs called CGI's, which process the requests and return output to the HTTP server, which relays that output back to the web browser.

CGI

WC also acts as a CGI, which is a program which receives commands via HTTP, performs actions on the server, and returns a result. FileMaker's CGI is not CDML. When the FileMaker HTTP server receives a request that is directed at the CGI, the HTTP server forwards the request to the CGI, the CGI executes the commands and returns a result to the HTTP server, and finally the HTTP server returns the result to the client that sent the HTTP request to begin with.

The CGI is only invoked if the URL that is sent to the HTTP server contains a directive indicating that the request is meant for the CGI. In FileMaker's case, the CGI is invoked with "/FMPro". Parameters can be passed to the CGI after the /FMPro directive. The following example calls the CGI, and passes to it the parameter "-db" with the value "test.fp5":

http://server.com/FMPro?-db=test.fp5

If the HTTP server does not receive a URL with a call to the CGI (/FMPro), then the HTTP server can fetch the requested file directly from the file system and return it to the user without having to call the CGI. This is more efficient, but only works for retrieving static content from the file system. For example, the following request downloads the file named "test.fp5":

http://server.com/test.fp5

The FileMaker CGI is used to take actions against the database such as inserting new records, updating existing records, and deleting records. The results can be returned various formats. The CGI requires a "-format"parameter to tell it which format to use when returning the results. The format parameter can be a CDML file or one of FileMaker's two XML grammars (-fmp_xml and -dso_xml). You can also additionally specify a stylesheet to use on the results, using the "-styletype" and "-stylehref" parameters. For example, you could send an HTTP request to the CGI asking it to find certain records, return the records in -fmp_xml format, but convert the XML based on instructions in an XSL stylesheet to end up with an HTML response. More on this later.

Scripting Language

WC also acts as a Scripting Language (CDML) which can programmatically manipulate the results provided by FileMaker. CDML scripts are invoked by the CGI, after it has executed its command. The CDML script is specified by the "-format" parameter in the URL that is sent to the CGI. CDML is extremely limited. It has no facility for performing math, and doesn't take parameters. The fact that it doesn't take parameters is a severely crippling factor. An important advantage to any CGI or any scripting language is that it accepts parameters from the URL and *conditionally* takes action based on logic in the server side script and the values passed in through the parameters.

CDML was more of a marketing gimmick than anything else, allowing FileMaker to advertise their product as "web ready". FileMaker Inc is making the right move by abandoning CDML, as they are NOT a middleware software company. It is better for them to focus on what they do best, namely furthering their database product. So long as they continue to provide an API which is accessible to third party CGI's and their associated scripting languages such as Lasso, PHP, ASP, etc, developers will still be able to publish their FileMaker data to the web. The fact that FileMaker is moving away from this further indicates that CDML is an inferior product. If CDML were a strong and robust technology which attracted developers and sold licenses, you can be assured they would continue to capitalize on it. But it doesn't and they won't.

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

In answer to your questions...

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

1. Which is easiest to learn?

This really depends on how much you want to do with your solution. Basic CDML is probably the easiest to learn, but the first time you want to conditionally process input from the user before doing something to the database you'll find that you've exceeded CDML's usefulness. You'll be in the same situation the first time you want to do math, create a secure login system, track users as they move from page to page, etc. That's not to say it can't be done - just that CDML is no longer the right tool. You'll end up writing a lot more code to produce a much weaker, more limited, and more fragile system than if you were using another technology like PHP, Lasso, ASP, Perl, ColdFusion, etc.

2. Which are the most versatile, that is, which can be used with more than just FileMaker? Is this question worth pursuing if one is really mainly interested in using FM on the web?

With the exception of CDML, these CGIs and languages can used with just about any database on the market. Some are more optimized for certain databases than others. For example, PHP is optimized for MySQL (MySQL and PHP are both open source technologies which have been developed hand in hand by the same community), ASP is more optimized for use with SQL Server (both being Microsoft products), and Lasso is optimized for use with FileMaker (Lasso does support MySQL extremely well and even comes bundled with MySQL, but Lasso does not share the same development community that PHP and MySQL share).

Either PHP or Perl are probably the most versatile in terms of native functionality. PHP probably has the largest install base although ASP, ColdFusion, and Perl have significant market share as well. Lasso has *by far* the smallest install base. On the other hand, the majority of FileMaker driven sites are powered by Lasso. Lasso can be used quite successfully with other databases, however, it is predominantly used within the FileMaker community. I've never, ever, met a web developer outside the FileMaker community who had so much as even heard of Lasso.

Even though you may only be interested in FileMaker at this point, it is probably best to learn one of the more popular technologies so as to provide yourself more options the next time you find yourself looking for a job. If you learn Lasso, you're limiting yourself to a much smaller group of potential employers.

Another consideration is the syntax. Lasso and ColdFusion use tag based proprietary languages. These languages are limited to Lasso and ColdFusion, and are not useful for anything else. ASP is based on JScript and VBScript. JScript is an extension of the JavaScript core language (which is used for scripting web browser functionality). VBScript is a subset of Visual Basic, perhaps the most popular language for Windows scripting and Windows GUI applications. Naturally, JScript or VBScript are valuable languages to learn as they open a world of possibilities to you. PHP uses its own "C" based syntax, which is very similar to JavaScript. Learning either JavaScript or PHP will make the other much easier to learn. Perl is unfortunately a language unto itself, although it is extremely popular among system programmers (far more so than any of the other languages discussed here). Perl is a very ackward and ugly language to look at initially, although once you learn it seems to begin, for some very strange reason, to feel elegant.

3. Which have support, either by the maker or by users so that when one is stuck one can get some good advice?

The support offered by the make of any of these technologies is pretty much limited to their online documentation. Each technology has failry comprehensive online documentation.

As far as learning material is concerned, PHP probably has the best support. There are tons and tons of quality books available on PHP. There are less available on Perl, and nearly none available on Lasso or ColdFusion. The one book I've found on Lasso was the worst waste of paper I've ever seen. I'm still bitter that I wasted my money on it (Lasso Professional 5 Developer's Guide). The Microsoft technologies are a different story. There are numerous books on using VBScript with ASP to create web sites, although I haven't found any of them to be particularly good (or bad). While there are tons of books available on JavaScript (most of which cover the core language quite well), there are nearly no books on using JScript with ASP. Thankfully the difference between JScript and VBScript is mostly one of syntax, so if you learn JavaScript you can easily interpret the VBScript books for use with JScript. I like using JScript with ASP because it helps consolidate your code base since you'll no doubt be using JavaScript for client side scripting (the less languages you have floating around in your application, the easier the code is to maintain).

There are tons and tons of PHP users on the internet, and it is quite easy to find forums dedicated to PHP where expert developers routinely contribute valuable insight. There are also magazines (such as PHP|Architect) which make for good educational sources. Lasso also maintains a forum which is quite useful. It is also relatively easy to find forums dedicated to Perl, and ASP, although most of the ASP forums focus on VBScript.

Most of the expert advice you receive on these technologies will not come from FileMaker developers or forums, but rather forums catering to the respective technologies. Once you learn FileMaker's CGI spec, connecting to FileMaker is a fairly straight forward process from any of the middleware technologies. The bulk of your work will not be working with FileMaker, but working with the middleware to build successful interactive web sites.

4. Which is best at giving a pleasing user interface?

None of the middleware applications create user interfaces on their own -- they just execute scripts that you've written which output HTML/JavaScript/CSS for the HTTP server, which sends it on to the web browser. The HTML/JavaScript/CSS that you generate is entirely, 100%, up to you. Middleware scripts are used to dynamically build HTML pages based on the current state of something on the server such as a database or data on the file system. You decide what HTML is output in your script, and that is what creates the user interface on the browser.

Fancy web based interfaces are the product of HTML, client side JavaScript, and CSS (cascading style sheets). You could instead use a browser plug-in like Macromedia's Flash Player to create interactive interfaces, but this requires the browsers to install the Flash plug-in, and requires you to learn how to write code for Flash. By far the most common approach is to use HTML/JavaScript/CSS, which all modern browsers (and most older browsers) support natively.

5. My reading of the above mentioned book raises the question of why use FileMaker at all?

The primary reason for using FileMaker to power web based applications is to leverage an existing database you've already developed and deployed. Another reason for using FileMaker is that it *can* be much simpler and easy to setup than some of the other more powerful databases. Overall, MySQL, Postgres, SQL Server, and Oracle are far more powerful, robust, scalable, and reliable than FileMaker. They are also more complicated and require much stricter and far reaching knowledge of database principles than does FileMaker. If you already have a FileMaker solution in place and it serves you well, then you should stick with FileMaker. If you are starting from scratch and have relatively simple goals and don't have demanding performance, scalability and reliability needs, then FileMaker is the right tool. Although FileMaker is not as fast, scalable, or reliable as the major databases, it is often good enough for many purposes. If you have demanding needs, plan to perform complex queries, and have the skill (and potentially budget) to deploy a more heavy-hitting database, then by all means go for it.

XML--It seems from the way the book is structured that XML underlies CDML, PHP and Lasso. But I am not certain of that. Does this mean that one has to learn XML first in order to really use the others?

You are mostly correct - XML underlies PHP, ASP, Perl, and ColdFusion. I am not sure if the Lasso architecture is built around it, although I imagine it is. CDML is not built on XML. And no, you do not have to learn a lick of XML in order to be able to use PHP, Lasso, or ASP effectively.

ODBC--I do not know anything about this language.

ODBC is a technology for manipulating databases using SQL (Structured Query Language). ODBC is more of an API than a language - languages typically offer support for ODBC, which allow you to make SQL based databased calls from your scripts. FileMaker exposes itself as an ODBC data source, meaning that scripting languages such as PHP, ASP, Lasso, Perl, ColdFusion, and more can send commands to FileMaker and retrieve data from FileMaker using SQL. Unfortunately, FileMaker's version of ODBC is extremely limited (it doesn't even support the ANSI-92 SQL standard, which is old and considered the most basic form of SQL). More importantly, FileMaker's ODBC drivers are extremely and astonishingly slow when retrieving data. While ODBC and SQL are very standard technologies, FileMaker responds so incredibly poorly to them that it is not worth using. This is very unfortunate.

One shouldn

Posted

WOW! Tom, thanks for asking the question. I know this topic is in my future, but didn't even know how to phrase a question yet.

Mariano, you have provided an incredible resource for those of us just getting started with web-enabled FM databases! I can't claim to understand everything you've written yet, but I know where to start working, and perhaps more importantly, where not to. CDML and the instant publishing route seem NOT to be the way to go. I'm already pretty handy with Perl, so I feel better in knowing this won't go to waste. By the way, I find Perl to be really intuitive. (This is probably because I haven't been encumbered by any knowledge of C. crazy.gif)

As for the usefulness of FileMaker on the web. Well, I've built some Perl-based flat-file databases for the web. These were fairly complex. I can't imagine what it would take to make a relational structure this way. I'm more than happy to let FM provide my main DB architecture, use Perl and JavaScript to provide the bridge, and make a GUI in HTML. My xml skills are improving too. All of this is encouraging to me.

I'd still like to get some book titles on where to turn. Mariano, when is your book's publication date? wink.gif

Thanks again. I'm sure I'll refer to this post often over the next year.

Dan

Posted

laugh.gif no more coffee for Mariano!

...unless he is working in the office down the hall from mine! smile.gif

Nice work!.....really Nice Work!

Posted

Mariano should be immediately updated from "journeyman," at least a notch or two ???-)

Just one more question :-/ What is your opinion of the FX class for PHP? (a short answer is sufficient, as your wrists may be tired). Is this a good method, at least for simple uses? It appeals to me because: it's free, it appears to be logical, taking the raw XML output of Web Companion and parsing it as an array, and it is platform agnostic (I'm mostly on a Mac).

Posted

Thanks for the really kind words! smile.gif

Fenton, I use FX and like it quite a bit for the same reasons you mentioned. I use PHP and FX for most web projects that involve FileMaker. When I'm not using PHP, I use ASP and that is mostly to maintain a consistent codebase in a solution that has already been written in ASP. Even if the project is very simple, I find it easiest to use FX because I'm already familiar with it, and it keeps my code uniform. FX also keeps the database interaction simple while providing me the power and flexibility of PHP, so that my projects don't out grow the technology they are built on.

PHP can be a bit daunting at first, and I do recommend reading a book on the language to get you started in the right direction. I started with Wrox's Professional PHP 4 and have been very happy with it. There are really only a few chapters (roughly 100 pages) you have to read to gain a good understanding of the PHP syntax (the chapters on PHP Fundamentals, PHP Structures, Object Oriented Programming with PHP, and Sessions and Cookies). I've also read the O'Reilly book on PHP (by Rasmus Lerdorf, the creator of PHP) and liked it, although I found the Wrox book much more helpful.

The O'Reilly book on JavaScript is an extremely good book on the core JavaScript language. It uses a very structured approach to teaching the language. For client side (browser) scripting, Danny Goodman's JavaScript Bible is excellent as it has in depth coverage of cross browser issues. However, the JavaScript Bible is a behemoth of a book which is difficult to learn the language from, and really is most useful as a thorough reference filled with expert insight.

I can't remember the names of the Perl books I read, but they were all O'Reilly books (I think they were Programming Perl, Advanced Perl Programming, and Perl Cookbook). I was very happy with all of them.

Posted

Yeah, the built in O'Reilly references are awesome.

You can also install the PHP manual in Homesite, and then configure it to provide context sensitive help. This is an incredibly useful feature -- you type in a function name or keyword, press F1, and Homesite instantly brings up the relevent PHP documentation inside the editor window. You can download these free extensions to Homesite at:

http://www.wilk4.com/asp4hs/php4hs.htm

Posted

Marianno,

I want to thank you very much for your careful--and wonderfully full!--answers to my questions. I will need a little time to digest them. I've gotten a lot out of this thread to explore.

One of the questions I raised--about why there is no PHP mini-forum on FM Forums--I'd like to pose again. Perhaps you have no information on why this is so. However, I did notice that FM Forums itself is written with PHP--you can see it in the URL of every page. This raises a further question. I know that PHP can hide the database that underlines a web site. Is FileMaker the database for this web site?

Tom

  • 2 weeks later...
Posted

Whew! Thanx for the brainfood, Mariano! That'll be enough to last me a while and it's greatly appreciated!

Tom T / RE: PHP forum & FileMaker CDML...

Hi, Tom! I think there's a Lasso forum because of its close ties to FileMaker as folks have mentioned and that Lasso is CDML+++. In fact, I believe your CDML code will execute in Lasso just fine as-is and "upgrading" to Lasso allows you to grow into it as you develop both your sites and yourself as a developer. FileMaker costs money; Lasso costs money.

As for "Why FileMaker?" I like to think of all of these databases and middleware as different tools for different purposes and each one has a niche in which it excels or does not excel (pseudo-pun!). There's crossover, of course, but these technologies are not alI equivalent. I can teach someone the basics of FileMaker in an hour or two and they can produce their own databases and layouts fairly quickly, and usually, they enjoy it so much and feel a sense of empowerment that they begin using FileMaker for all sorts of things. IMO, this is one of FileMaker's greatest assets... ease of use, versatility, and fun. Moving some these great little FileMaker projects to the web was a natural next step for us, and although I am a computer support person at my University, I am not a professional developer and can go several months without working on web db's.

Today, however, I did set up a Mac OS X computer with PHP, mySQL, and the phpmyadmin web interface and although it wasn't too bad to install, I did not particularly enjoy trying to configure MySQL. Using phpmyadmin allowed me to see what some of the actual SQL commands being sent looked like, and GAH! what I saw did not make me eager to dive in learning SQL queries.

I think each of us has to weigh who we are with what we need to know and what we want to know, line that up with who and where we think we are going, and then decide what to do. If you're going to be developing a truckload of primarily web-based databasing, then definitely look at Apache/MySQL/PHP (AMP) kinda systems. As for me, I doubt we'll ever fully leave FileMaker and I like having web data immediately accessible to end users just by running FMP and clicking OPEN / HOSTS (even though FMP, Inc. does not recommend this). And since I don't work on my FMP web projects all the time, I rely on the good folks here at FMFORUMS to keep things fresh in my mind whenever I can sneak a bit of board time in. And when I forget everything, it doesn't take me long to learn it all again since the CDML Reference db can be read through pretty much from start to finish in one sitting!

Good for you for doing your research. I hope you find the right match. IMO, Mariano's knowledge and experience shows that you should pick the right tool for the right job and the right people, depending upon your (and their) needs, skills, and size of wallet.

--ST

This topic is 7560 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.