<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>NSTRUTS</title><link>http://www.codeplex.com/nstruts/Project/ProjectRss.aspx</link><description>The jakarta Struts framework porting on ASP.NET </description><item><title>CREATED TASK: Problem with Actions in App_Code</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=1019</link><description>In many projects i use app_code directory.

The current version of nstruts library not support actions locate in App_Code special directory of web project.

I suggest to modify ProcessActionCreate (RequestProcessor.cs) and ActionConfig for enable load of Actions locate in App_Code. </description><author>antdimot</author><pubDate>Wed, 25 Apr 2007 21:26:47 GMT</pubDate><guid isPermaLink="false">CREATED TASK: Problem with Actions in App_Code 20070425092647P</guid></item><item><title>CREATED FEATURE: Multi Assembly loading</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=884</link><description>Enable support of multiple Assembly loading via configuration

example:

  &lt;plug-in type="nstruts.actions.CustomConfigurationPlugIn,nstruts"&gt;
    &lt;set-property property="Description" value="action conf. using custom attrs."&gt;&lt;/set-property&gt;
    &lt;set-property property="AssemblyName" value="modeul1;module2;moduleN"/&gt;
  &lt;/plug-in&gt; </description><author>bsorrentino</author><pubDate>Wed, 25 Apr 2007 21:22:55 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Multi Assembly loading 20070425092255P</guid></item><item><title>CLOSED ISSUE: Problem on load extenal plugin assembly</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=534</link><description>I have a problem when use a plugin that not loaded in web application AppDomain,
in this case i think that CustomConfigurationPlugIn not configure correctly my plugin.

I suggest modify it:

public void Init(nstruts.ActionHandler handler, System.Web.HttpContext context)
{
            if (m_AssemblyName != null)
            {
                Assembly a = Assembly.Load( m_AssemblyName );

                Process( handler, a );               
            }
}


Thanks

Regards,
Tony </description><author>bsorrentino</author><pubDate>Wed, 25 Apr 2007 21:12:05 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: Problem on load extenal plugin assembly 20070425091205P</guid></item><item><title>CREATED ISSUE: Problem on load extenal plugin assembly</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=534</link><description>I have a problem when use a plugin that not loaded in web application AppDomain,
in this case i think that CustomConfigurationPlugIn not configure correctly my plugin.

I suggest modify it:

public void Init(nstruts.ActionHandler handler, System.Web.HttpContext context)
{
            if (m_AssemblyName != null)
            {
                Assembly a = Assembly.Load( m_AssemblyName );

                Process( handler, a );               
            }
}


Thanks

Regards,
Tony </description><author>bsorrentino</author><pubDate>Wed, 25 Apr 2007 21:12:03 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Problem on load extenal plugin assembly 20070425091203P</guid></item><item><title>CREATED RELEASE: 1.1 Release Candidate</title><link>http://www.codeplex.com/nstruts/Release/ProjectReleases.aspx?ReleaseId=1850</link><description>Release with bug fixing, performance improvements, ndoc completion </description><author></author><pubDate>Fri, 09 Mar 2007 08:00:00 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: 1.1 Release Candidate 20070309080000A</guid></item><item><title>CREATED TASK: Problem with Actions in App_Code</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=758</link><description>In many projects i use app_code directory.

The current version of nstruts library not support actions locate in App_Code special directory of web project.

I suggest to modify ProcessActionCreate (RequestProcessor.cs) and ActionConfig for enable load of Actions locate in App_Code. </description><author>antdimot</author><pubDate>Sun, 04 Mar 2007 12:07:29 GMT</pubDate><guid isPermaLink="false">CREATED TASK: Problem with Actions in App_Code 20070304120729P</guid></item><item><title>CREATED FEATURE: Multi Assembly loading</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=617</link><description>Enable support of multiple Assembly loading via configuration

example:

  &lt;plug-in type="nstruts.actions.CustomConfigurationPlugIn,nstruts"&gt;
    &lt;set-property property="Description" value="action conf. using custom attrs."&gt;&lt;/set-property&gt;
    &lt;set-property property="AssemblyName" value="modeul1;module2;moduleN"/&gt;
  &lt;/plug-in&gt; </description><author>bsorrentino</author><pubDate>Tue, 27 Feb 2007 21:09:18 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Multi Assembly loading 20070227090918P</guid></item><item><title>CLOSED ISSUE: Problem on load external plugin assembly</title><link>http://www.codeplex.com/nstruts/WorkItem/View.aspx?WorkItemId=243</link><description>I have a problem when use a plugin that not loaded in web application AppDomain,
in this case i think that CustomConfigurationPlugIn not configure correctly my plugin.

I suggest modify it:

public void Init(nstruts.ActionHandler handler, System.Web.HttpContext context)
{
            if (m_AssemblyName != null)
            {
                Assembly a = Assembly.Load( m_AssemblyName );

                Process( handler, a );               
            }
}


Thanks

Regards,
Tony </description><author>bsorrentino</author><pubDate>Tue, 27 Feb 2007 21:02:22 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: Problem on load external plugin assembly 20070227090222P</guid></item><item><title>UPDATED WIKI: Logging</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Logging&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Logging
&lt;/h2&gt; &lt;br /&gt;To help locate any defects that are present in the software, it's beneficial to generate log messages that tell you what the application is doing. Moreover logging could be useful for security and auditing reasons to help the system administrators to have information about accesses and operations over application. &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Logging"&gt;NStruts&lt;/a&gt; uses the &lt;a href="http://www.codeplex.com/DotnetCommons/" class="externalLink"&gt;Dotnet Commons Logging&lt;/a&gt; framework to implement logging needs.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Dotnet Common Logging Framework
&lt;/h3&gt; &lt;br /&gt;The Commons Logging package is an open source Logging library that allows developers to utilize a common logging API, while maintaining the freedom to utilize many different third-party logging implementations. The Commons Logging API insulates the application and protects it from becoming coupled to a specific logging implementation.&lt;br /&gt;The API provides a small set of C# classes and interfaces that an application imports and relies upon, but which has no implicit dependencies on any one logging product.&lt;br /&gt;The Logging library allows developers to declaratively configure the logging implementation and the library will dynamically discover which implementation is being used. An application that utilizes the Commons Logging API does not have to be modified when the logging implementation is changed; this is the greatest benefit of such a package.&lt;br /&gt; &lt;br /&gt;The Commons Logging package supports several different logging implementations out of the box:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://logging.apache.org/log4net/" class="externalLink"&gt;Log4Net&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SimpleLog (Simple text file Logger)&lt;/li&gt;&lt;li&gt;System.Diagnostics.Trace&lt;/li&gt;&lt;li&gt;Microsoft Logging and Instrumentation Application Block (LIAB).&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
Configuration
&lt;/h3&gt; &lt;br /&gt;The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Logging"&gt;NStruts&lt;/a&gt; sample application provide a &lt;a href="http://www.codeplex.com/DotnetCommons/" class="externalLink"&gt;Dotnet Commons Logging&lt;/a&gt;	Configuration's example that use &lt;a href="http://logging.apache.org/log4net/" class="externalLink"&gt;Log4Net&lt;/a&gt; implementation, an excerpt is outlined below.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
&amp;lt;configSections&amp;gt;
 
    &amp;lt;!--
    =============================================
    Log4Net config section
    =============================================
    --&amp;gt;
    &amp;lt;section name=&amp;quot;log4net&amp;quot; type=&amp;quot;log4net.Config.Log4NetConfigurationSectionHandler, log4net&amp;quot; /&amp;gt;
 
&amp;lt;/configSections&amp;gt;
 
&amp;lt;appSettings&amp;gt;
    &amp;lt;!--
    ===========================================================================
    This is the only Application Setting needed for Dotnet.Commons.Logging
    ===========================================================================
    --&amp;gt;
    &amp;lt;add key=&amp;quot;Dotnet.Commons.Logging.LogFactory&amp;quot;
        value=&amp;quot;Dotnet.Commons.Logging.Impl.Log4NetFactory,Dotnet.Commons.Logging.Log4Net&amp;quot; /&amp;gt;
 
&amp;lt;/appSettings&amp;gt;
 
 
&amp;lt;!--
=============================================
Log4Net specific  Configuration
=============================================
--&amp;gt;
&amp;lt;log4net&amp;gt;
    &amp;lt;appender name=&amp;quot;ConsoleAppender&amp;quot; type=&amp;quot;log4net.Appender.ConsoleAppender&amp;quot; &amp;gt;
        &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;
            &amp;lt;conversionPattern value=&amp;quot;%date [%thread] %-5level %logger [%ndc] - %message%newline&amp;quot; /&amp;gt;
	&amp;lt;/layout&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;appender name=&amp;quot;FrameworkAppender&amp;quot; type=&amp;quot;log4net.Appender.FileAppender&amp;quot;&amp;gt;
        &amp;lt;file value=&amp;quot;nstruts.log&amp;quot; /&amp;gt;
        &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;
            &amp;lt;conversionPattern value=&amp;quot;%date [%thread] %-5level %logger [%ndc] - %message%newline&amp;quot; /&amp;gt;
        &amp;lt;/layout&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;root&amp;gt;
        &amp;lt;level value=&amp;quot;ALL&amp;quot; /&amp;gt;
        &amp;lt;appender-ref ref=&amp;quot;ConsoleAppender&amp;quot; /&amp;gt;
    &amp;lt;/root&amp;gt;
    &amp;lt;logger name=&amp;quot;NStruts&amp;quot;&amp;gt;
        &amp;lt;level value=&amp;quot;TRACE&amp;quot; /&amp;gt;
        &amp;lt;appender-ref ref=&amp;quot;FrameworkAppender&amp;quot; /&amp;gt;
    &amp;lt;/logger&amp;gt;
&amp;lt;/log4net&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Tue, 27 Feb 2007 20:51:32 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Logging 20070227085132P</guid></item><item><title>UPDATED WIKI: Logging</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Logging&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Logging
&lt;/h2&gt; &lt;br /&gt;To help locate any defects that are present in the software, it's beneficial to generate log messages that tell you what the application is doing. Moreover logging could be useful for security and auditing reasons to help the system administrators to have information about accesses and operations over application. &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Logging"&gt;NStruts&lt;/a&gt; uses the &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2fwww.gotdotnet.com%2fWorkspaces%2fWorkspace.aspx%3fide5546f13-1ced-47d1-8667-53b613cc4873&amp;amp;referringTitle=Logging"&gt;Dotnet Commons Logging&lt;/a&gt; framework to implement logging needs.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Dotnet Common Logging Framework
&lt;/h3&gt; &lt;br /&gt;The Commons Logging package is an open source Logging library that allows developers to utilize a common logging API, while maintaining the freedom to utilize many different third-party logging implementations. The Commons Logging API insulates the application and protects it from becoming coupled to a specific logging implementation.&lt;br /&gt;The API provides a small set of C# classes and interfaces that an application imports and relies upon, but which has no implicit dependencies on any one logging product.&lt;br /&gt;The Logging library allows developers to declaratively configure the logging implementation and the library will dynamically discover which implementation is being used. An application that utilizes the Commons Logging API does not have to be modified when the logging implementation is changed; this is the greatest benefit of such a package.&lt;br /&gt; &lt;br /&gt;The Commons Logging package supports several different logging implementations out of the box:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2flogging.apache.org%2flog4net%2f&amp;amp;referringTitle=Logging"&gt;Log4Net&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SimpleLog (Simple text file Logger)&lt;/li&gt;&lt;li&gt;System.Diagnostics.Trace&lt;/li&gt;&lt;li&gt;Microsoft Logging and Instrumentation Application Block (LIAB).&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
Configuration
&lt;/h3&gt; &lt;br /&gt;The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Logging"&gt;NStruts&lt;/a&gt; sample application provide a &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2fwww.codeplex.com%2fDotnetCommons%2fWiki%2fView.aspx%3ftitleLogging%26referringTitleHome&amp;amp;referringTitle=Logging"&gt;Dotnet Commons Logging&lt;/a&gt;	Configuration's example that use &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2flogging.apache.org%2flog4net%2f&amp;amp;referringTitle=Logging"&gt;Log4Net&lt;/a&gt; implementation, an excerpt is outlined below.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
&amp;lt;configSections&amp;gt;
 
    &amp;lt;!--
    =============================================
    Log4Net config section
    =============================================
    --&amp;gt;
    &amp;lt;section name=&amp;quot;log4net&amp;quot; type=&amp;quot;log4net.Config.Log4NetConfigurationSectionHandler, log4net&amp;quot; /&amp;gt;
 
&amp;lt;/configSections&amp;gt;
 
&amp;lt;appSettings&amp;gt;
    &amp;lt;!--
    ===========================================================================
    This is the only Application Setting needed for Dotnet.Commons.Logging
    ===========================================================================
    --&amp;gt;
    &amp;lt;add key=&amp;quot;Dotnet.Commons.Logging.LogFactory&amp;quot;
        value=&amp;quot;Dotnet.Commons.Logging.Impl.Log4NetFactory,Dotnet.Commons.Logging.Log4Net&amp;quot; /&amp;gt;
 
&amp;lt;/appSettings&amp;gt;
 
 
&amp;lt;!--
=============================================
Log4Net specific  Configuration
=============================================
--&amp;gt;
&amp;lt;log4net&amp;gt;
    &amp;lt;appender name=&amp;quot;ConsoleAppender&amp;quot; type=&amp;quot;log4net.Appender.ConsoleAppender&amp;quot; &amp;gt;
        &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;
            &amp;lt;conversionPattern value=&amp;quot;%date [%thread] %-5level %logger [%ndc] - %message%newline&amp;quot; /&amp;gt;
	&amp;lt;/layout&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;appender name=&amp;quot;FrameworkAppender&amp;quot; type=&amp;quot;log4net.Appender.FileAppender&amp;quot;&amp;gt;
        &amp;lt;file value=&amp;quot;nstruts.log&amp;quot; /&amp;gt;
        &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;
            &amp;lt;conversionPattern value=&amp;quot;%date [%thread] %-5level %logger [%ndc] - %message%newline&amp;quot; /&amp;gt;
        &amp;lt;/layout&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;root&amp;gt;
        &amp;lt;level value=&amp;quot;ALL&amp;quot; /&amp;gt;
        &amp;lt;appender-ref ref=&amp;quot;ConsoleAppender&amp;quot; /&amp;gt;
    &amp;lt;/root&amp;gt;
    &amp;lt;logger name=&amp;quot;NStruts&amp;quot;&amp;gt;
        &amp;lt;level value=&amp;quot;TRACE&amp;quot; /&amp;gt;
        &amp;lt;appender-ref ref=&amp;quot;FrameworkAppender&amp;quot; /&amp;gt;
    &amp;lt;/logger&amp;gt;
&amp;lt;/log4net&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Tue, 27 Feb 2007 20:41:36 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Logging 20070227084136P</guid></item><item><title>UPDATED WIKI: ReflectionAction</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=ReflectionAction&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
ReflectionAction
&lt;/h2&gt; &lt;br /&gt;The class &lt;b&gt;nstruts.actions.ReflectionAction&lt;/b&gt; allows to map any methods (also static ones) as an &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;amp;referringTitle=ReflectionAction"&gt;NStruts&lt;/a&gt;'s action. The mapped methods must be compliant with the following signatures:&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; signature &lt;/th&gt;&lt;th&gt; note &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; public nstruts.Forward &lt;i&gt;MethodName&lt;/i&gt;( nstruts.ActionContext actionCtx, System.Web.HttpContext ctx ) &lt;/td&gt;&lt;td&gt; public instance method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; public static nstruts.Forward &lt;i&gt;MethodName&lt;/i&gt;( nstruts.ActionContext actionCtx, System.Web.HttpContext ctx ) &lt;/td&gt;&lt;td&gt; public static method &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
Configuration
&lt;/h3&gt; &lt;br /&gt;Below is shown the ReflectionAction Configuration&lt;br /&gt;&lt;pre&gt;
&amp;lt;!-- Reflection Action --&amp;gt;
    &amp;lt;action type=&amp;quot;nstruts.actions.ReflectionAction,nstruts&amp;quot; path=&amp;quot;/[Action Name]&amp;quot;&amp;gt;
      &amp;lt;init-params&amp;gt;
        &amp;lt;param name=&amp;quot;type&amp;quot; value=&amp;quot;[Action Type, Assembly]&amp;quot;/&amp;gt;
        &amp;lt;param name=&amp;quot;method&amp;quot; value=&amp;quot;[Method Name]&amp;quot;/&amp;gt;
      &amp;lt;/init-params&amp;gt;
      &amp;lt;!-- Forward Declarations --&amp;gt;
    &amp;lt;/action&amp;gt;
&lt;/pre&gt; &lt;br /&gt;&lt;h3&gt;
Example
&lt;/h3&gt; &lt;br /&gt;This is the example provided within the &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=ReflectionAction"&gt;NStruts&lt;/a&gt;'s  sample application (i.e. nstrutsweb)&lt;br /&gt; &lt;br /&gt;&lt;b&gt;TestReflectionAction.cs&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;
namespace NStruts.Web.Actions
{
    public class TestReflectionAction
    {
        public Forward ActionA( ActionContext actionCtx, System.Web.HttpContext ctx )
        {
            ctx.Items[&amp;quot;info&amp;quot;] = &amp;quot;ActionA&amp;quot;;
 
            return actionCtx.Forwards[&amp;quot;success&amp;quot;];
        }
 
        public Forward ActionB(ActionContext actionCtx, System.Web.HttpContext ctx)
        {
            ctx.Items[&amp;quot;info&amp;quot;] = &amp;quot;ActionB&amp;quot;;
 
            return actionCtx.Forwards[&amp;quot;success&amp;quot;];
        }
 
        public static Forward ActionC(ActionContext actionCtx, System.Web.HttpContext ctx)
        {
            ctx.Items[&amp;quot;info&amp;quot;] = &amp;quot;ActionC&amp;quot;;
 
            return actionCtx.Forwards[&amp;quot;success&amp;quot;];
        }
    }
}
&lt;/pre&gt; &lt;br /&gt;&lt;b&gt;TestReflectionAction configuration&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;
&amp;lt;action type=&amp;quot;nstruts.actions.ReflectionAction,nstruts&amp;quot; path=&amp;quot;/actionA&amp;quot;&amp;gt;
      &amp;lt;init-params&amp;gt;
        &amp;lt;param name=&amp;quot;type&amp;quot; value=&amp;quot;NStruts.Web.Actions.TestReflectionAction,nstrutsweb&amp;quot;/&amp;gt;
        &amp;lt;param name=&amp;quot;method&amp;quot; value=&amp;quot;ActionA&amp;quot;/&amp;gt;
      &amp;lt;/init-params&amp;gt;
      &amp;lt;forward name=&amp;quot;success&amp;quot; path=&amp;quot;/ViewActionDetails.aspx&amp;quot; /&amp;gt;
    &amp;lt;/action&amp;gt;
    &amp;lt;action type=&amp;quot;nstruts.actions.ReflectionAction,nstruts&amp;quot; path=&amp;quot;/actionB&amp;quot;&amp;gt;
      &amp;lt;init-params&amp;gt;
        &amp;lt;param name=&amp;quot;type&amp;quot; value=&amp;quot;NStruts.Web.Actions.TestReflectionAction,nstrutsweb&amp;quot;/&amp;gt;
        &amp;lt;param name=&amp;quot;method&amp;quot; value=&amp;quot;ActionB&amp;quot;/&amp;gt;
      &amp;lt;/init-params&amp;gt;
      &amp;lt;forward name=&amp;quot;success&amp;quot; path=&amp;quot;/ViewActionDetails.aspx&amp;quot; /&amp;gt;
    &amp;lt;/action&amp;gt;
    &amp;lt;action type=&amp;quot;nstruts.actions.ReflectionAction,nstruts&amp;quot; path=&amp;quot;/actionC&amp;quot;&amp;gt;
      &amp;lt;init-params&amp;gt;
        &amp;lt;param name=&amp;quot;type&amp;quot; value=&amp;quot;NStruts.Web.Actions.TestReflectionAction,nstrutsweb&amp;quot;/&amp;gt;
        &amp;lt;param name=&amp;quot;method&amp;quot; value=&amp;quot;ActionC&amp;quot;/&amp;gt;
      &amp;lt;/init-params&amp;gt;
      &amp;lt;forward name=&amp;quot;success&amp;quot; path=&amp;quot;/ViewActionDetails.aspx&amp;quot; /&amp;gt;
    &amp;lt;/action&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Wed, 14 Feb 2007 09:00:26 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReflectionAction 20070214090026A</guid></item><item><title>UPDATED WIKI: Custom Attributes</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom Attributes&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Custom Attributes
&lt;/h2&gt; &lt;br /&gt;The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt; Custom Attributes allows to publish actions without needs to write configuration items (i.e. XML tags).&lt;br /&gt;Outlined below there are the available NStruts attributes:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;namespace NStruts.Attributes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ActionContainerAttribute"&gt;ActionContainerAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ActionParameterAttribute - not supported yet&lt;/li&gt;&lt;li&gt;&lt;a href="#FormObjectAttribute"&gt;FormObjectAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ForwardAttribute"&gt;ForwardAttribute&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionAttribute"&gt;&lt;/a&gt; [Action]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Action( string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Action( &amp;quot;/custom&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s Action&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name associated to action &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Scope &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's scope (context|session|application|cache) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Action's path - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionContainerAttribute"&gt;&lt;/a&gt;[ActionContainer]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; ActionContainer() &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[ActionContainer]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionContainerAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used  in order to declare that within class there are Method Level Actions (see &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=ReflectionAction&amp;amp;referringTitle=Custom%20Attributes"&gt;ReflectionAction&lt;/a&gt; )&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ForwardAttribute"&gt;&lt;/a&gt;[Forward]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; true &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Forward( string name, string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Forward( &amp;quot;success&amp;quot;, &amp;quot;/ViewActionDetails.aspx&amp;quot;)]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ForwardAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new action's forward. (w) It has sense only if is declared an &lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt; first&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; name that identify the forward object - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Forward's path - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Redirect &lt;/td&gt;&lt;td&gt; bool &lt;/td&gt;&lt;td&gt; it indicates if you want use the http redirect to invoke the forward's path (i) default is false &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="FormObjectAttribute"&gt;&lt;/a&gt;[FormObject]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; FormObject( string name ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[FormObject( &amp;quot;user&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.FormObjectAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to delclare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s FormObject&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Wed, 14 Feb 2007 08:49:34 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Custom Attributes 20070214084934A</guid></item><item><title>UPDATED WIKI: Custom Attributes</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom Attributes&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Custom Attributes
&lt;/h2&gt; &lt;br /&gt;The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt; Custom Attributes allows to publish actions without needs to write configuration items (i.e. XML tags).&lt;br /&gt;Outlined below there are the available NStruts attributes:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;namespace NStruts.Attributes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ActionContainerAttribute"&gt;ActionContainerAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ActionParameterAttribute - not supported yet&lt;/li&gt;&lt;li&gt;&lt;a href="#FormObjectAttribute"&gt;FormObjectAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ForwardAttribute"&gt;ForwardAttribute&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionAttribute"&gt;&lt;/a&gt; [Action]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Action( string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Action( &amp;quot;/custom&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s Action&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name associated to action &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Scope &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's scope (context|session|application|cache) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Action's path - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionContainerAttribute"&gt;&lt;/a&gt;[ActionContainer]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; ActionContainer() &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[ActionContainer]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionContainerAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used  in order to declare that within class there are Method Level Actions (see &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=ReflectionAction&amp;amp;referringTitle=Custom%20Attributes"&gt;ReflectionAction&lt;/a&gt; )&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ForwardAttribute"&gt;&lt;/a&gt;[Forward]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; true &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Forward( string name, string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Forward( &amp;quot;success&amp;quot;, &amp;quot;/ViewActionDetails.aspx&amp;quot;)]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ForwardAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new action's forward. (w) It has sense only if is declared an &lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt; first&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; name that identify the forward object - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Forward's path - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Redirect &lt;/td&gt;&lt;td&gt; bool &lt;/td&gt;&lt;td&gt; it indicates if you want use the http redirect to invoke the forward's path (i) default is false &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="FormObjectAttribute"&gt;&lt;/a&gt;[FormObject]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; FormObject( string name ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[FormObject( &amp;quot;user&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.FormObjectAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to delclare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s FormObject&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Wed, 14 Feb 2007 08:47:58 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Custom Attributes 20070214084758A</guid></item><item><title>UPDATED WIKI: Custom Configuration PlugIn</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom Configuration PlugIn&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
CustomConfigurationPlugIn
&lt;/h2&gt; &lt;br /&gt;The &lt;b&gt;nstruts.actions.CustomConfigurationPlugIn&lt;/b&gt; plugIn class enables the support of the custom attributes to declare Actions, Forwards and Form-Objects.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Configuration
&lt;/h3&gt; &lt;br /&gt;To configure this plug-in we have to put, within &lt;b&gt;nstruts.config&lt;/b&gt;, the folowing configuration&lt;br /&gt;&lt;pre&gt;
&amp;lt;plug-in type=&amp;quot;nstruts.actions.CustomConfigurationPlugIn,nstruts&amp;quot;&amp;gt;
  &amp;lt;set-property property=&amp;quot;AssemblyName&amp;quot; value=&amp;quot;[assembly name]&amp;quot;/&amp;gt;
&amp;lt;/plug-in&amp;gt;
&lt;/pre&gt; &lt;br /&gt;&lt;h3&gt;
AssemblyName parameter
&lt;/h3&gt; &lt;br /&gt;It defines the assembly where the plugin will scan to find custom attributes.&lt;br /&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Wed, 14 Feb 2007 08:42:49 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Custom Configuration PlugIn 20070214084249A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
The jakarta Struts framework porting on ASP.NET 
&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Goals
&lt;/h3&gt;Nstruts's goal is to provide a easy way to reuse &lt;a href="http://struts.apache.org/" class="externalLink"&gt;Struts&lt;/a&gt; know-how in .NET environment. Moreover it would try to improve the original java edition using all the stuff provided by ASP.NET technology&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Dependencies
&lt;/h3&gt;NStruts depends upon&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=e5546f13-1ced-47d1-8667-53b613cc4873" class="externalLink"&gt;Commons Logging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4net/" class="externalLink"&gt;Log4Net&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Project Information
&lt;/h3&gt;NStruts is originally hosted in &lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=a7c92222-2966-4224-9771-9598179dc1f2" class="externalLink"&gt;GotDotNet&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Features
&lt;/h3&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Logging&amp;amp;referringTitle=Home"&gt;Logging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Configureless approach&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom%20Configuration%20PlugIn&amp;amp;referringTitle=Home"&gt;Custom Configuration PlugIn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom%20Attributes&amp;amp;referringTitle=Home"&gt;Custom Attributes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Wed, 14 Feb 2007 08:38:59 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070214083859A</guid></item><item><title>UPDATED WIKI: Custom Attributes</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom Attributes&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Custom Attributes
&lt;/h2&gt; &lt;br /&gt;The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt; Custom Attributes allows to publish actions without needs to write configuration items (i.e. XML tags).&lt;br /&gt;Outlined below there are the available NStruts attributes:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;namespace NStruts.Attributes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ActionContainerAttribute"&gt;ActionContainerAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ActionParameterAttribute - not supported yet&lt;/li&gt;&lt;li&gt;&lt;a href="#FormObjectAttribute"&gt;FormObjectAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ForwardAttribute"&gt;ForwardAttribute&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionAttribute"&gt;&lt;/a&gt; [Action]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Action( string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Action( &amp;quot;/custom&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s Action&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name associated to action &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Scope &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's scope (context|session|application|cache) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Action's path - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionContainerAttribute"&gt;&lt;/a&gt;[ActionContainer]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; ActionContainer() &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[ActionContainer]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionContainerAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used  in order to declare that within class there are Method Level Actions (see &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=ReflectionAction&amp;amp;referringTitle=Custom%20Attributes"&gt;ReflectionAction&lt;/a&gt; )&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ForwardAttribute"&gt;&lt;/a&gt;[Forward]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; true &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Forward( string name, string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Forward( &amp;quot;success&amp;quot;, &amp;quot;/ViewActionDetails.aspx&amp;quot;)]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ForwardAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new action's forward. (w) It has sense only if is declared an &lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt; first&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; name that identify the forward object - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Forward's path - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Redirect &lt;/td&gt;&lt;td&gt; bool &lt;/td&gt;&lt;td&gt; it indicates if you want use the http redirect to invoke the forward's path (i) default is false &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="FormObjectAttribute"&gt;&lt;/a&gt;[FormObject]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; FormObject( string name ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[FormObject( &amp;quot;user&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.FormObjectAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to delclare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s FormObject&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Tue, 13 Feb 2007 16:41:07 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Custom Attributes 20070213044107P</guid></item><item><title>UPDATED WIKI: Custom Attributes</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom Attributes&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt; Custom Attributes allows to publish actions without needs to write configuration items (i.e. XML tags).&lt;br /&gt;Outlined below there are the available NStruts attributes:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;namespace NStruts.Attributes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ActionContainerAttribute"&gt;ActionContainerAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ActionParameterAttribute - not supported yet&lt;/li&gt;&lt;li&gt;&lt;a href="#FormObjectAttribute"&gt;FormObjectAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#ForwardAttribute"&gt;ForwardAttribute&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionAttribute"&gt;&lt;/a&gt; [Action]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Action( string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Action( &amp;quot;/custom&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s Action&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name associated to action &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Scope &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's scope (context|session|application|cache) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Action's path - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ActionContainerAttribute"&gt;&lt;/a&gt;[ActionContainer]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; ActionContainer() &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[ActionContainer]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ActionContainerAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used  in order to declare that within class there are Method Level Actions (see &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=ReflectionAction&amp;amp;referringTitle=Custom%20Attributes"&gt;ReflectionAction&lt;/a&gt; )&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="ForwardAttribute"&gt;&lt;/a&gt;[Forward]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class and Method &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; true &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; Forward( string name, string path ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[Forward( &amp;quot;success&amp;quot;, &amp;quot;/ViewActionDetails.aspx&amp;quot;)]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.ForwardAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to declare a new action's forward. (w) It has sense only if is declared an &lt;a href="#ActionAttribute"&gt;ActionAttribute&lt;/a&gt; first&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; name that identify the forward object - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Path &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Forward's path - mandatory &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Redirect &lt;/td&gt;&lt;td&gt; bool &lt;/td&gt;&lt;td&gt; it indicates if you want use the http redirect to invoke the forward's path (i) default is false &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h3&gt;
&lt;a name="FormObjectAttribute"&gt;&lt;/a&gt;[FormObject]
&lt;/h3&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; Applies to &lt;/td&gt;&lt;td&gt; Class &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Allow Multiple &lt;/td&gt;&lt;td&gt; false &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; constructor &lt;/td&gt;&lt;td&gt; FormObject( string name ) &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Example &lt;/td&gt;&lt;td&gt; &lt;b&gt;[FormObject( &amp;quot;user&amp;quot; )]&lt;/b&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; class &lt;/td&gt;&lt;td&gt; NStruts.Attributes.FormObjectAttribute &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;This attribute can be used in order to delclare a new &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Custom%20Attributes"&gt;NStruts&lt;/a&gt;'s FormObject&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; property &lt;/th&gt;&lt;th&gt; type &lt;/th&gt;&lt;th&gt; feature &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; Name &lt;/td&gt;&lt;td&gt; string &lt;/td&gt;&lt;td&gt; Form-Object's Name - mandatory &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Tue, 13 Feb 2007 16:40:20 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Custom Attributes 20070213044020P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
The jakarta Struts framework porting on ASP.NET 
&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Goals
&lt;/h3&gt;Nstruts's goal is to provide a easy way to reuse &lt;a href="http://struts.apache.org/" class="externalLink"&gt;Struts&lt;/a&gt; know-how in .NET environment. Moreover it would try to improve the original java edition using all the stuff provided by ASP.NET technology&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Dependencies
&lt;/h3&gt;NStruts depends upon&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=e5546f13-1ced-47d1-8667-53b613cc4873" class="externalLink"&gt;Commons Logging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4net/" class="externalLink"&gt;Log4Net&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Project Information
&lt;/h3&gt;NStruts is originally hosted in &lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=a7c92222-2966-4224-9771-9598179dc1f2" class="externalLink"&gt;GotDotNet&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Features
&lt;/h3&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Logging&amp;amp;referringTitle=Home"&gt;Logging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Configureless approach&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Custom%20Attributes&amp;amp;referringTitle=Home"&gt;Custom Attributes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Tue, 13 Feb 2007 16:31:54 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070213043154P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
The jakarta Struts framework porting on ASP.NET 
&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Goals
&lt;/h3&gt;Nstruts's goal is to provide a easy way to reuse &lt;a href="http://struts.apache.org/" class="externalLink"&gt;Struts&lt;/a&gt; know-how in .NET environment. Moreover it would try to improve the original java edition using all the stuff provided by ASP.NET technology&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Dependencies
&lt;/h3&gt;NStruts depends upon&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=e5546f13-1ced-47d1-8667-53b613cc4873" class="externalLink"&gt;Commons Logging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4net/" class="externalLink"&gt;Log4Net&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Project Information
&lt;/h3&gt;NStruts is originally hosted in &lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=a7c92222-2966-4224-9771-9598179dc1f2" class="externalLink"&gt;GotDotNet&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Features
&lt;/h3&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=LOGGING&amp;amp;referringTitle=Home"&gt;LOGGING&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Tue, 13 Feb 2007 16:25:34 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070213042534P</guid></item><item><title>UPDATED WIKI: Logging</title><link>http://www.codeplex.com/nstruts/Wiki/View.aspx?title=Logging&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Logging
&lt;/h2&gt; &lt;br /&gt;To help locate any defects that are present in the software, it's beneficial to generate log messages that tell you what the application is doing. Moreover logging could be useful for security and auditing reasons to help the system administrators to have information about accesses and operations over application. &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Logging"&gt;NStruts&lt;/a&gt; uses the &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2fwww.gotdotnet.com%2fWorkspaces%2fWorkspace.aspx%3fide5546f13-1ced-47d1-8667-53b613cc4873&amp;amp;referringTitle=Logging"&gt;Dotnet Commons Logging&lt;/a&gt; framework to implement logging needs.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Dotnet Common Logging Framework
&lt;/h3&gt; &lt;br /&gt;The Commons Logging package is an open source Logging library that allows developers to utilize a common logging API, while maintaining the freedom to utilize many different third-party logging implementations. The Commons Logging API insulates the application and protects it from becoming coupled to a specific logging implementation.&lt;br /&gt;The API provides a small set of C# classes and interfaces that an application imports and relies upon, but which has no implicit dependencies on any one logging product.&lt;br /&gt;The Logging library allows developers to declaratively configure the logging implementation and the library will dynamically discover which implementation is being used. An application that utilizes the Commons Logging API does not have to be modified when the logging implementation is changed; this is the greatest benefit of such a package.&lt;br /&gt; &lt;br /&gt;The Commons Logging package supports several different logging implementations out of the box:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2flogging.apache.org%2flog4net%2f&amp;amp;referringTitle=Logging"&gt;Log4Net&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SimpleLog (Simple text file Logger)&lt;/li&gt;&lt;li&gt;System.Diagnostics.Trace&lt;/li&gt;&lt;li&gt;Microsoft Logging and Instrumentation Application Block (LIAB).&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
Configuration
&lt;/h3&gt; &lt;br /&gt;The &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=NStruts&amp;amp;referringTitle=Logging"&gt;NStruts&lt;/a&gt; sample application provide a &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2fwww.gotdotnet.com%2fWorkspaces%2fWorkspace.aspx%3fide5546f13-1ced-47d1-8667-53b613cc4873&amp;amp;referringTitle=Logging"&gt;Dotnet Commons Logging&lt;/a&gt; configuration's example that use &lt;a href="http://www.codeplex.com/nstruts/Wiki/View.aspx?title=http%3a%2f%2flogging.apache.org%2flog4net%2f&amp;amp;referringTitle=Logging"&gt;Log4Net&lt;/a&gt; implementation, an excerpt is outlined below.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
&amp;lt;configSections&amp;gt;
 
    &amp;lt;!--
    =============================================
    Log4Net config section
    =============================================
    --&amp;gt;
    &amp;lt;section name=&amp;quot;log4net&amp;quot; type=&amp;quot;log4net.Config.Log4NetConfigurationSectionHandler, log4net&amp;quot; /&amp;gt;
 
&amp;lt;/configSections&amp;gt;
 
&amp;lt;appSettings&amp;gt;
    &amp;lt;!--
    ===========================================================================
    This is the only Application Setting needed for Dotnet.Commons.Logging
    ===========================================================================
    --&amp;gt;
    &amp;lt;add key=&amp;quot;Dotnet.Commons.Logging.LogFactory&amp;quot;
        value=&amp;quot;Dotnet.Commons.Logging.Impl.Log4NetFactory,Dotnet.Commons.Logging.Log4Net&amp;quot; /&amp;gt;
 
&amp;lt;/appSettings&amp;gt;
 
 
&amp;lt;!--
=============================================
Log4Net specific  Configuration
=============================================
--&amp;gt;
&amp;lt;log4net&amp;gt;
    &amp;lt;appender name=&amp;quot;ConsoleAppender&amp;quot; type=&amp;quot;log4net.Appender.ConsoleAppender&amp;quot; &amp;gt;
        &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;
            &amp;lt;conversionPattern value=&amp;quot;%date [%thread] %-5level %logger [%ndc] - %message%newline&amp;quot; /&amp;gt;
	&amp;lt;/layout&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;appender name=&amp;quot;FrameworkAppender&amp;quot; type=&amp;quot;log4net.Appender.FileAppender&amp;quot;&amp;gt;
        &amp;lt;file value=&amp;quot;nstruts.log&amp;quot; /&amp;gt;
        &amp;lt;layout type=&amp;quot;log4net.Layout.PatternLayout&amp;quot;&amp;gt;
            &amp;lt;conversionPattern value=&amp;quot;%date [%thread] %-5level %logger [%ndc] - %message%newline&amp;quot; /&amp;gt;
        &amp;lt;/layout&amp;gt;
    &amp;lt;/appender&amp;gt;
    &amp;lt;root&amp;gt;
        &amp;lt;level value=&amp;quot;ALL&amp;quot; /&amp;gt;
        &amp;lt;appender-ref ref=&amp;quot;ConsoleAppender&amp;quot; /&amp;gt;
    &amp;lt;/root&amp;gt;
    &amp;lt;logger name=&amp;quot;NStruts&amp;quot;&amp;gt;
        &amp;lt;level value=&amp;quot;TRACE&amp;quot; /&amp;gt;
        &amp;lt;appender-ref ref=&amp;quot;FrameworkAppender&amp;quot; /&amp;gt;
    &amp;lt;/logger&amp;gt;
&amp;lt;/log4net&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><author>bsorrentino</author><pubDate>Mon, 12 Feb 2007 23:08:51 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Logging 20070212110851P</guid></item></channel></rss>