2008-03-27 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.Compilation / ChangeLog
index 453a3d4aee02b30c9c91ebeb2efee497d94f3f93..6ef7a0085a234a3d451e3130146777eaa43deaad 100644 (file)
@@ -1,3 +1,305 @@
+2008-03-27  Marek Habersack  <mhabersack@novell.com>
+
+       * BuildManager.cs: AssertVirtualPathExists now queries the
+       VirtualPathProvider for path existence if physical path check
+       fails, before throwing the 404 exception.
+
+2008-03-13  Marek Habersack  <mhabersack@novell.com>
+
+       * BuildManager.cs: if we're running in a case-insensitive
+       environment, use case-insensitive comparer for the build caches. 
+
+2008-02-29  Marek Habersack  <mhabersack@novell.com>
+
+       * BuildManager.cs: implement a mechanism to ignore certain virtual
+       paths when batch compiling. Helps applications which may have
+       .as?x files which won't work on mono for various reasons (one such
+       sample is mojoportal).
+
+2008-02-28  Marek Habersack  <mhabersack@novell.com>
+
+       * TemplateControlCompiler.cs: make sure that data-bound attribute
+       assignments properly convert the Bind expression to the Eval
+       one. Fixes bug #362039
+
+       * AspGenerator.cs: in 2.0+, aspx files which contain the Content
+       controls can contain only them, whitespace and directives. Fixes
+       bug #339747
+
+2008-02-27  Marek Habersack  <mhabersack@novell.com>
+
+       * AspComponentFoundry.cs: use BuildManager.GetCompiledType in the
+       LoadType method for the 2.0 profile.
+
+       * CompilationException.cs: use a different format of ErrorMessage
+       for the 2.0+ profile.
+
+2008-02-26  Marek Habersack  <mhabersack@novell.com>
+
+       * BuildManager.cs: known file types extensions are now matched
+       case-insensitively.
+
+2008-02-25  Marek Habersack  <mhabersack@novell.com>
+
+       * TemplateControlCompiler.cs: GetContainerType now checks whether
+       the binding container returned from the builder implements
+       IDataItemContainer (for 2.0+ profiles) and looks for one more
+       property, Rows, if no Items property is found.
+
+2008-02-08  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * AppSettingsExpressionBuilder.cs: Improve exception messages. Return
+       "raw" appsetting value if targetType is null.
+
+2008-02-07  Marek Habersack  <mhabersack@novell.com>
+
+       * CompilationException.cs: added new constructor which takes
+       CompilerResults as one of the parameters.
+       Added CompilerOutput property.
+
+       * AssemblyBuilder.cs: use the new CompilationError constructor.
+
+       * BuildManager.cs: check for virtualPath existence before
+       attempting to compile the assemblies. Fixes bug #359465
+
+2008-02-06  Marek Habersack  <mhabersack@novell.com>
+
+       * GenericBuildProvider.cs: GetGeneratedType may return a type even
+       though the results are null.
+
+       * AssemblyBuilder.cs: if there are no units, no source files, no
+       resources and no embedded resources in the passed options then
+       do not attempt to compile the assembly. Fixes bug #359325
+
+       * AppResourcesAssemblyBuilder.cs, AppCodeCompiler.cs: expect that
+       BuildAssembly may return null results.
+
+       * BuildManager.cs: protect non-page builds from endless recursion
+       if a non-page file recursively references/includes another file
+       from the same batch. If such case is detected, the recursively
+       referenced file is compiled into a separate assembly and removed
+       from the previous compilation batch. Fixes bug #358742.
+       If AssemblyBuilder returns no results from BuildAssembly, it might
+       mean we're dealing with a compilation of empty .as[hm]x files,
+       with no code and only code-behind in bin/. Do not report an error
+       in that case, only add the compiled types to the cache. Fixes bug
+       #357624.
+
+2008-02-05  Marek Habersack  <mhabersack@novell.com>
+
+       * BuildManager.cs: GetAbsoluteVirtualPath correctly converts
+       non-rooted relative paths to absolute ones now. Fixes bug
+       #357504.
+
+       * GenericBuildProvider.cs: introduced a new abstract method,
+       GetReferencedAssemblies, which is called on descendant builders to
+       get a list of assemblies referenced by the parsed file. Fixes bug
+       #357499.
+
+       * AssemblyBuilder.cs: added a new overload of the
+       AddAssemblyReference method, to be used by build providers to
+       register assemblies collected by the corresponding parser.
+
+       * TemplateBuildProvider.cs, SimpleBuildProvider.cs: implemented
+       overload of the new abstract method GetReferencedAssemblies.
+
+       * AspGenerator.cs: introduced a new overload for the Parse method
+       which accepts a bool indicating whether or not to initialize the
+       parser. The overload is used when parsing server-side
+       includes. Fixes bug #357498
+
+2008-02-04  Marek Habersack  <mhabersack@novell.com>
+
+       * AssemblyBuilder.cs: do not use WebEncoding.FileEncoding when
+       generating source code files. Fixes bug #357053.
+
+       * AspGenerator.cs: set isApplication before parsing. Fixes bug
+       #357036.
+
+2008-01-31  Jb Evain  <jbevain@novell.com>
+
+       * AspGenerator.cs: correct typo. Fix #357547.
+
+2008-01-27  Marek Habersack  <mhabersack@novell.com>
+
+       * BuildManager.cs: GetReferencedAssemblies includes the extra
+       assemblies and the App_Code assemblies. Patch from Mike Morano
+       <mmorano@mikeandwan.us>, thanks!
+
+2008-01-24  Marek Habersack  <mhabersack@novell.com>
+
+       * WebHandlerBuildProvider.cs: derive from the new
+       SimpleBuildProvider class.
+
+       * BuildManager.cs: full implementation of the batch compilation
+       for the 2.0 profile. The implementation is most probably different
+       to MS.NET's but the effects are the same (or nearly the same -
+       there are some minor differences). There are missing bits and
+       pieces, but minor ones - to be added later.
+
+       * SimpleBuildProvider.cs: new build provider abstract class
+       deriving from the GenericBuildProvider that implements common code
+       for building web handlers and web services.
+
+       * GenericBuildProvider.cs: new generic abstract class used to
+       implement base builder code for all the build provider types and
+       maximize code reuse.
+
+       * PageBuildProvider.cs: derive from the new TemplateBuildProvider
+       class and implement all the necessary abstract members. 
+       Handle "fake" virtual paths, to properly support generating of the
+       WSDL helper code.
+
+       * BuildProvider.cs: SetVirtualPath now converts the passed path to
+       absolute URL.
+       Added internal virtual method GenerateCode, used by derived
+       classes.
+       SetCommonParameters no longer sets the referenced assemblies, this
+       is done in BuildManager now.
+       Added an internal virtual property CodeUnit which returns the
+       build provider's compilation unit.
+
+       * PageCompiler.cs: fix assignment of base types for asynchronous
+       pages, to match MS.NET.
+       For asynchronous pages, add the necessary methods generation.
+
+       * BaseCompiler.cs: default namespace is now set using a constant.
+       Renamed the Init method into ConstructType, to better reflect its
+       purpose and made the method internal - it is used by the build
+       providers.
+       Added several CreateProvider overloads for easier and more unified
+       compilation provider creation.
+       Added an internal MainClassType property to enable class type name
+       retrieval from other parts of the class hierarchy.
+
+       * ApplicationFileBuildProvider.cs: new build provider deriving
+       from the TemplateBuildProvider class to compile the global.asax
+       file.
+
+       * AspGenerator.cs: properly handle parsers which have no input
+       file path given, but use TextReader instead.
+       Dependencies are virtual paths now, convert them to physical ones
+       before creating cache dependency.
+
+       * CachingCompiler.cs: parser dependencies are virtual paths now,
+       convert them to physical ones before creating cache dependency.
+
+       * AssemblyBuilder.cs: full implementation of the documented
+       functionality as well as a lot of internal build code
+       added. Produces assemblies using the same style what MS.NET for
+       temporary and target file naming. Handles partial type squashing
+       if the same partial type is used by several code compile units
+       added to the same builder instance.
+
+       * MasterPageBuildProvider.cs: use the new TemplateBuildProvider
+       base class and add implementation of all the abstract methods
+       required by it.
+
+       * ThemeDirectoryBuildProvider.cs: new build provider to compile
+       theme directories. Replaces the old ThemeDirectoryCompiler class.
+
+       * UserControlBuildProvider.cs: use the new TemplateBuildProvider
+       base class and add implementation of all the abstract methods
+       required by it.
+
+       * TemplateBuildProvider.cs: new internal abstract class which
+       implements the common tasks for all the template control build
+       providers.
+
+       * WebServiceBuildProvider.cs: use the new SimpleBuildProvider base
+       type to implement building.
+
+2008-01-17  Igor Zelmanovich <igorz@mainsoft.com>
+
+       * BaseCompiler.cs: Assign AppRelativeVirtualPath correctly
+
+2008-01-08  Marek Habersack  <mhabersack@novell.com>
+
+       * TemplateControlCompiler.cs: statements to assign
+       fields/properties from resources must be processed at the very end
+       of the control creation method. Some controls (like HyperLink) can
+       set their Text attribute using literal content. In such cases, in
+       order to properly localize the control, the value read from the
+       local page resources must be assigned after the literal value has
+       been added to the control. Fixes bug #323494
+
+2008-01-07  Marek Habersack  <mhabersack@novell.com>
+
+       * CachingCompiler.cs: added an overload to the Compile method
+       which accepts a flag whether or not to include debug information
+       in the generated assembly.
+
+2008-01-02  Marek Habersack  <mhabersack@novell.com>
+
+       * TemplateControlCompiler.cs: add line pragma wherever necessary.
+
+       * PageCompiler.cs: reorder the statements to match MS.NET output.
+       Output line pragma information for directive attributes.
+
+       * BaseCompiler.cs: add a set of AddLinePragma methods for various
+       CodeDOM elements. 
+       Output line pragmas when adding server-side scripts to the CodeDOM
+       tree.
+
+       * AspGenerator.cs: use ServerSideScript to store script location
+       in the original file.
+
+       * UserControlCompiler.cs: output line pragmas for the init
+       method.
+
+2007-12-28  Marek Habersack  <mhabersack@novell.com>
+
+       * PageCompiler.cs: MS.NET compatibility: added the
+       __fileDependencies object to the generated class.
+       Refactored the output to match MS.NET more closely.
+       IHttpHandler or IHttpAsyncHandler are now added to the generated
+       class list of implemented interfaces.
+       
+       * BaseCompiler.cs: Main class field references are prefixed with
+       'global::' now. 
+       Refactored the output to match MS.NET more closely.
+
+2007-12-27  Marek Habersack  <mhabersack@novell.com>
+
+       * BaseCompiler.cs: check for base type globality in all the
+       location it is used.
+
+2007-12-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * AppSettingsExpressionBuilder.cs: fixed GetAppSetting, should convert
+       to property type
+
+2007-12-21  Marek Habersack  <mhabersack@novell.com>
+
+       * BaseCompiler.cs: Refactoring. Move the provider creation code to
+       an internal static method, so that other piece of code which need
+       to create the provider can do it using the same code. 
+       Added setters to several internal properties, so that they can be
+       shared with derivative classes.
+
+       * WebServiceCompiler.cs: adjust to the changes above. Fixes bug
+       #350398.
+
+       * CachingCompiler.cs: adjust to the changes above. Also some
+       refactoring.
+
+2007-12-15  Marek Habersack  <mhabersack@novell.com>
+
+       * AppCodeCompiler.cs: do not instantiate CodeDomProvider twice.
+
+       * BaseCompiler.cs: do not use CreateCompiler () in the 2.0
+       profile, it's obsoleted. CachingCompiler will use the
+       CodeDomProvider methods directly in that case.
+
+       * WebServiceCompiler.cs: Updated GetCompiledType to acquire
+       compiler information for the 2.0 profile from system.codeDom.
+
+       * CachingCompiler.cs: the Compile overloads do not use the
+       compiler instance, but call appropriate methods on the
+       CodeDomProvider instance directly.
+       Updated some Compile overloads to acquire compiler information for
+       the 2.0 profile from system.codeDom.
+
 2007-12-14  Juraj Skripsky  <js@hotfeet.ch>
 
        * TemplateControlCompiler.cs (AddExpressionAssign):