When creating a BrowserView in Plone, I know that I may optionally configure a template with ZCML like so:
<configure
    xmlns:browser="http://namespaces.zope.org/browser"
    >
    <browser:page
        …
        class=".foo.FooView"
        template="foo.pt"
        …
        />
</configure>
Or alternatively in code:
# foo.py
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from zope.publisher.browser import BrowserPage
class FooView(BrowserPage):
    """
    My View
    """
    def __call__(self):
        return ViewPageTemplateFile('foo.pt')(self)
Is there any difference between the two approaches? They both appear to yield the same result.
Sub-question: I know there is a BrowserView class one can import, but conventionally everyone uses BrowserPage. What if any significant differences exist between the two classes?