[Mono-aspnet-list] compile Masterpage's masterpage

barrct chris at nabor.com
Wed Mar 26 13:34:47 UTC 2014


Well, windows does actually compile everything and that's the issue.
Here's a simple layout.

_uiMaster.master_
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="uiMaster.master.cs" CompilationMode="Always"
Inherits="masters_uiMaster" %>
<html>
<body>
Hay! I'm the site main nav! :D
<asp:ContentPlaceHolder id="bodyContent"
runat="server"></asp:ContentPlaceHolder>
</body>
</html>

_cmsMaster.master_
<%@ Master Language="C#" MasterPageFile="~/masters/uiMaster.master"
AutoEventWireup="true" CodeFile="cmsMaster.master.cs"
Inherits="masters_cmsMaster" %>
<asp:Content ID="body" ContentPlaceHolderID="bodyContent" Runat="Server">
HAY! I'm the site's content that's managed via a Content Management System.
</asp:Content>

_cmsMaster.master.cs_
((masters_uiMaster)Master).someGlobalSetting = value; //possibly enabling an
edit icon or passing the session up to the top.

_index.aspx_
<%@ Page Title="" Language="C#" MasterPageFile="~/masters/cmsMaster.master"
AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>


So, index.aspx is requested, it's a Dynamic content page so it's master is
"cmsMaster" because that holds all of the functionality for the application
to be able to load/edit/save dynamic content from users.
The cmsMaster still needs the basic site information, styles, navigation,
header, footer, etc. So it's master is "uiMaster".
There are actually 4 different primary types of pages and so the CMS cannot
be applied to all of them, witch is why it's in a separate master. One of
the other types is a static page for contact Us, location, staff that uses
the uiMaster directly. (Then there's 2 more types)
So, index calls cmsMaster that needs the UI from uiMaster. Simple enough.
Windows can handle this 100% of the time.
Index needs cmsMaster, so compile cmsMaster, and cmsMaster needs uiMaster,
so compile uiMaster. Done.

This is not what Mono does.
Mono sees that index.aspx requires cmsMaster, tries to compile cmsMaster and
then crashes because uiMaster does not exist. uiMaster is never compiled.

You can force uiMaster to compile by going to the about Us page (that uses
the uiMaster directly), and then going back to index.aspx and everyone is
happy.
Let the site idle and let uiMaster's compile go stale (I'm guessing that's
why it needs to recompile at times without being touched) and cmsMaster
crashes again because uiMaster does not exist. Even though it's clearly
defined in cmsMaster where it is, and that it's required.

As far as build options, That's what I'm asking about. The MS defaults work
so I've never had to touch anything.
What flags/settings need set in mod-mono to actually tell it to be smart and
compile all of the defined resources for a single page?



--
View this message in context: http://mono.1490590.n4.nabble.com/compile-Masterpage-s-masterpage-tp4662329p4662369.html
Sent from the Mono - ASP.NET mailing list archive at Nabble.com.


More information about the Mono-aspnet-list mailing list