Themelia Pro A powerful new development platform built on ASP.NET.
 
Creating Endpoints
 
 

When designing a web site, you can't simply design how the buttons and textboxes work.  You have to think about how you want to allow your web site to be accessed.  Your URL structure is just as part of your web site interaction as are the buttons and textboxes.  You must take care in designing use cases for your URL access in addition to form access.

Not only that, but Google completely removed the notion of a "single landing page".  With a search engine like Google, every single publicly accessible URL on your web site is fair game as a landing page.  Couple that with the fact that developers must retain the ability to refactor and reorganize pages as necesary, you have the following realization: the last thing you want is a casual file rename to break how Google ships traffic to your web site.

Therefore, one of the most important things anyone can do to their web site is disconnect their physical structure from their logical.  Themelia provides an extreme level of flexibility in this regard with it's concept of endpoints.  While everything in Themelia is based on the concept of a Web Domain, all access in Themelia controlled by endpoints.

A Themelia endpoints is a specifically declared entry point into your web site.  It can be a map to an ASP.NET page, point to an HTTP handler, represent a symbolically linked file, or even be a redirect to another place altogether.  Endpoints are very important as, aside from a more advanced concept called a CatchAll, endpoints are the only way for someone to access your web site.  This type of contrainst dramatically increases your ability to manage the boundaries of your web site.

Here's an example of adding endpoints to a web domain:

<themelia.web>
  <webDomains>
    <add defaultPage="/Page_/Home/Home.aspx">
      <endpoints>
        <add selector="pathStartsWith" text="/contact/" type="PageAlias" parameter="/Sequence_/Contact.aspx" />
        <add selector="pathStartsWith" text="/help/" type="PageAlias" parameter="/Page_/Information/Faq.aspx" />
        <add selector="pathStartsWith" text="/code/" type="ABCCorp.Web.CodeValidator, ABCCorp" parameter="/Page_/Information/Faq.aspx" />
        <add selector="contains" text="/referral/" type="Redirect" parameter="http://affiliate/"/>
      </endpoints>
    </add>
    <add name="northSales" path="/sale/region/north/" defaultPage="/Page_/Sale/Region.aspx" />
  </webDomains>
</themelia.web>

This example shows two page aliases, an HTTP handler registration, and a redirect.  This means that the only way you are allowing traffic into your web site is via /, /contact/, /code/, or any URL containing /referral/.Each of these concepts will be explains in future documentation.  The point here is to show the general idea behind creating endpoints.