Alfresco WCM and .NET Web Applications
There are a few basic ways of using Alfresco in a .NET web application; the web services APIs, web scripts (REST-API) and .NET code calls retrieving content directly from the filesystem.
Your content authors in the Authoring instance of Alfresco, inside your firewall, would create content. This content would be deployed to a runtime instance of Alfresco outside of your firewall and/or to your IIS servers. (Publishing to your IIS servers would be deploying static content.)
When creating content under Alfresco WCM, forms are used to collect/enter the content. The content is defined in a XML Scheme Definition (XSD). This XSD defines the form (content model) that the content author uses to enter content. The XSD is used to create the XML file that holds the content that you are creating. Applying templates against this XML file you can then create renditions of the content. These templates can be the HTML Freemarker templates, XSLT or XSL-FO. The renditions can be full pages, micro-pages, code snippets or render the content in another format, like creating a PDF.
Your .NET web application could retrieve/ use content in a couple of ways:
0/ The Alfresco runtime could be queried via the SOAP APIs. The results displayed in your web application
1/ URL calls to web scripts, which would return XML (that could be formatted as RSS or ATOM), JSON or rendered HTML (that could be a widget, or html with reference to your wire framework) that could be included directly in the page, or wrapped in an IFRAME.
2/ Dynamic calls to static content on an IIS server. (Content can be deployed to a specific location, and your .NET code could display that content in some fashion. [Reading files by naming convention, filetype, etc.])
The same type of implementation can be use with Java/J2EE, PHP, Ruby on Rails, CF, etc.