+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):
+ Make sure expression does not contain prefix.
+
+ * AppSettingsExpressionBuilder.cs: Pass type of property to
+ GetAppSetting, not type of declaring type.
+
+2007-12-13 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs, AspComponentFoundry.cs,
+ AssemblyBuilder.cs, AppResourcesCompiler.cs,
+ AppResourcesAssemblyBuilder.cs, AppCodeCompiler.cs: speed
+ optimization - use String.Concat instead of String.Format in some
+ cases.
+
+2007-11-22 Marek Habersack <mhabersack@novell.com>
+
+ * PageCompiler.cs: use
+ pageParser.OutputCacheVaryByContentEncodings when initializing the
+ output cache in the 2.0 profile.
+
+2007-11-06 Marek Habersack <mhabersack@novell.com>
+
+ * BuildManager.cs: properly retrieve the BuildProviderCollection
+ from configuration files.
+
+2007-11-03 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: do not call converters specified in
+ the member custom attributes if 'str' is null in
+ GetExpressionFromString.
+
+2007-10-23 Marek Habersack <mhabersack@novell.com>
+
+ * AppResourcesAssemblyBuilder.cs: do not output preservation files
+ for satellite assemblies, just for the main assembly. Also, don't
+ add the satellite assemblies to the list of top-level assemblies.
+
+2007-10-17 Marek Habersack <mhabersack@novell.com>
+
+ * PageCompiler.cs: added code to set the AsyncMode and
+ AsyncTimeout Page properties.
+
+2007-10-15 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs, WebServiceCompiler.cs,
+ BuildProvider.cs, BaseCompiler.cs, CachingCompiler.cs: use
+ HttpApplication.LoadType instead of Type.GetType.
+
+2007-10-10 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: be careful when using type
+ converters taken from attributes attached to class members. They
+ may come from the System.Design namespace, which is mostly not
+ implemented on Mono.
+
+2007-10-01 Marek Habersack <mhabersack@novell.com>
+
+ * AppResourcesCompiler.cs: resources are no longer compiled into a
+ single assembly. Instead, the common assembly construction code
+ has been moved to AppResourcesAssemblyBuilder to use satellite
+ assemblies.
+
+ * AppResourcesAssemblyBuilder.cs: new resource assembly
+ construction code which takes care of outputting satellite
+ assemblies.
+
+2007-09-27 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: support nullable types in
+ GenerateExpressionFromString.
+
+2007-09-21 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: if we're running on a platform with
+ the directory separator character that's different to the Unix
+ style '/' one, convert the input file path to the virtual path
+ style string, with path parts separated by '/'. Patch from Robert
+ Jordan <robertj@gmx.net>, thanks! Fixes bug #324229.
+
+2007-09-20 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: if a member passed to
+ GetExpressionFromString has a TypeConverter attribute set, try to
+ use the named type converter to convert the string value into the
+ target type. Fixes bug #325489.
+
+2007-09-14 Marek Habersack <mhabersack@novell.com>
+
+ * AppResourcesCompiler.cs: use _culture and _resourceManager
+ instead of culture and resourceManger in the generated code, to
+ avoid case problems for languages that are case-insensitive.
+
+2007-09-10 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: cast the expression to the field
+ type whenever appropriate in GetExpressionFromString.
+ When generating an object instance and one of the parameters is
+ System.Type, return a typeof expression.
+
+2007-09-07 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: another modification to the way
+ TemplateInstance.Single templates are treated. The search for
+ parent with this attribute set stops as soon as the first
+ TemplateBuilder is encountered, no matter what the value of its
+ TemplateInstance attribute is.
+
+2007-09-06 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: ID must be assigned as soon as
+ possible, before any other attributes of the control are
+ accessed. The control code may rely on ID being set.
+ Extend the process of checking if a control is located within a
+ template with the TemplateInstance.Single attribute set, to all
+ the parents of the current builder.
+
+2007-09-05 Marek Habersack <mhabersack@novell.com>
+
+ * ThemeDirectoryCompiler.cs: all the skin files compiled in one
+ batch must share the same component foundry. Under MS.NET if any
+ earlier .skin file registers a control prefix any later .skin
+ files may use it without registering.
+
+2007-09-04 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: make sure that base class doesn't
+ contain a field of the same name which is accessible from the
+ current control if we're within a singleton template.
+ When generating code for a property or field, use the name
+ retrieved from the metadata by reflection instead of the one
+ parsed from html. Fixes bug #82687. Patch from SunHo Kim
+ <zsunno@gmail.com>, thanks!
+
+2007-08-29 Marek Habersack <mhabersack@novell.com>
+
+ * CachingCompiler.cs: consider contents of the
+ <compilation><assemblies> section when constructing a list of
+ assemblies during compilation.
+
+ * TemplateControlCompiler.cs: mark fields corresponding to the
+ controls as global references.
+ When control tree is constructed and the parent of the current
+ builder is a TemplateBuilder marked with the TemplateInstance
+ attribute set to Single, use the control's ID as the field
+ name. This makes it possible to refer to controls inside templates
+ by name instead of by using FindControl.
+
+2007-08-23 Marek Habersack <mhabersack@novell.com>
+
+ * AppCodeCompiler.cs: use HttpApplication.BinDirectoryAssemblies
+ and HttpApplication.LoadTypeFromBin.
+
+ * BuildProvider.cs: use HttpApplication.BinDirectoryAssemblies in
+ AddAssembliesInBin.
+
+2007-08-21 Marek Habersack <mhabersack@novell.com>
+
+ * BuildProvider.cs: use HttpApplication.PrivateBinPath enumerator
+ to look up assemblies in the binary path(s).
+
+2007-08-19 Juraj Skripsky <js@hotfeet.ch>
+
+ * GlobalAsaxCompiler.cs (ProcessObjects): Make string comparison
+ for scope case insensitive. Fixes bug #82479.
+
+2007-08-14 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: remove dead code.
+
+ * AssemblyBuilder.cs: include actual exception information when
+ reporting inability to load a compiled assembly.
+
+ * AppCodeCompiler.cs: remove unused variables.
+
+ * AspComponentFoundry.cs: use an ArrayList to implement LIFO for
+ component collections, instead of the old Queue which implemented
+ FIFO. Fixes situations when a control registered later for a
+ certain prefix would not be used in preference to a previously
+ registered one of the same name.
+
+2007-08-06 Marek Habersack <mhabersack@novell.com>
+
+ * AspComponentFoundry.cs: properly add new foundry if the
+ corresponding entry in the foundries collection is a Queue. Patch
+ from Juraj Skripsky <juraj@hotfeet.ch>, thanks! Fixes bug #82285.
+
+2007-07-31 Marek Habersack <mhabersack@novell.com>
+
+ * AspComponentFoundry.cs: do not overwrite previously registered
+ foundries when a new one is registered with the same prefix. Fixes
+ bug #82216
+
+2007-07-18 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: on the 2.0 profile, GetContainerType
+ does not look up the Item/Items properties to determine the
+ container type, instead it just returns the type reported by the
+ builder passed to this method. This change makes the generated
+ code match MS.NET. Fixes bug #82119.
+
+2007-07-02 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: don't use StartWith to see if a
+ variable's value is a bind expression, as it erroneously renames
+ all calls to methods starting with the string Bind. Use a regular
+ expression now instead. Fixes bug #81928.
+
+2007-06-20 Marek Habersack <mhabersack@novell.com>
+
+ * AppResourcesCompiler.cs: use HttpRuntime.InternalCache to keep
+ private entries.
+ * CachingCompiler.cs: as above
+ * AspGenerator.cs: as above
+
+2007-06-13 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: make sure control has a writable
+ TemplateControl property prior to assigning values to it.
+
+2007-06-09 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: TemplateControl is assigned for
+ controls that are placed within ContentPlaceHolder and not for the
+ ContentPlaceHolder itself.
+ No longer add the overriden version of TemplateSourceDirectory to
+ the generated source, all the work is now done in
+ Control.TemplateSourceDirectory.
+
+ * BaseCompiler.cs: AppRelativeVirtualPath shouldn't end with a
+ slash, for compatibility with MS.NET
+
+2007-06-05 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: TemplateSourceDirectory in the 2.0
+ profile uses the TemplateControl property instead of Parent. This
+ allows to return the correct path.
+
+2007-06-01 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: be case-insensitive when looking for
+ Bind requests.
+
+2007-05-29 Marek Habersack <mhabersack@novell.com>
+
+ * ThemeDirectoryCompiler.cs: pass the skin file's
+ virtual path to the skin file parser as its first paramenter, and
+ not a physical path.
+
+2007-05-28 Marek Habersack <mhabersack@novell.com>
+
+ * ResourceExpressionBuilder.cs: properly cast
+ GetGlobalResourceObject calls to the type of the property being
+ assigned to.
+
+2007-05-25 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: Changed a few incorrect
+ ObjectCreationExpression to the correct DelegateCreationExpression.
+ Fixes #81706.
+
+2007-05-24 Marek Habersack <mhabersack@novell.com>
+
+ * PageCompiler.cs: added support for the PreviousPageType directive.
+
+ * Directive.cs: as above.
+
+2007-05-22 Marek Habersack <mhabersack@novell.com>
+
+ * UserControlCompiler.cs: the Profile property should be present
+ also in user controls.
+
+2007-05-15 Marek Habersack <mhabersack@novell.com>
+
+ * ResourceExpressionBuilder.cs: added a static method to generate
+ a GetLocalResourceObject call which properly handles types which
+ cannot be converted from strings.
+
+ * TemplateControlCompiler.cs: use code described above to generate
+ code for properties assigned from resources.
+
+ * WsdlBuildProvider.cs: make the code actually work - get the
+ physical path of VirtualPath instead of converting it to absolute
+ URI path.
+ Do not generate source, add the code unit to assembly builder
+ instead.
+
+ * XsdBuildProvider.cs: added
+
+2007-05-08 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: BuildTemplateMethod is a delegate,
+ so use a delegate create expression - it may make difference for
+ languages other than C# (e.g. VisualBasic).
+
+2007-05-07 Marek Habersack <mhabersack@novell.com>
+
+ * AspGenerator.cs: if the parser's language is implicit (i.e. set
+ from the default configuration), the first script with the
+ language attribute present sets the language of the parser.
+
+2007-05-04 Marek Habersack <mhabersack@novell.com>
+
+ * TemplateControlCompiler.cs: do not query the parent for
+ TemplateSourceDirectory if we are generating code for a Master
+ Page.
+
2007-04-30 Marek Habersack <mhabersack@novell.com>
* ConnectionStringsExpressionBuilder.cs: support expressions with