2006-10-03 Igor Zelmanovich * TemplateControlCompiler.cs: fixed: Bind functions (Data-Binding Syntax). At run time, the Bind method calls the Eval method, if there is DataItem != null to bind to. If there is DataItem == null (like InsertItemTemplate in FormView) Bind method don't raise exception and works properly to extract data from bounded controls on postback. 2006-09-20 Gonzalo Paniagua Javier * AspGenerator.cs: if we are tracking non-server tags for well-formedness, handle tags that do not need to be closed (br, img,...) Fixes bug #79437. 2006-09-18 Gonzalo Paniagua Javier * PageCompiler.cs: support the EnableEventValidation attribute. 2006-09-08 Gonzalo Paniagua Javier * AspGenerator.cs: after parsing an include file, don't error out if we still have opened tags unless this was the last file to parse. Fixes bug #79318. 2006-09-05 Konstantin Triger * ParseException.cs: Ensure the source file stream is closed. 2006-08-25 Kornél Pál * AppSettingsExpressionBuilder.cs: Use assembly name constants. * ConnectionStringsExpressionBuilder.cs: Use name reference constants. * ResourceExpressionBuilder.cs: Use assembly name constants. 2006-08-20 Vladimir Krasnov * ThemeDirectoryCompiler.jvm.cs: implemented GetCompiledInstance 2006-08-10 Gonzalo Paniagua Javier * ClientBuildManager.cs: handle domain shutdown and unload. Implemented some properties. Commented. 2006-08-10 Andrew Skiba * ThemeDirectoryCompiler.cs: render css path as a virtual path. 2006-08-08 Vladimir Krasnov * added ThemeDirectoryCompiler.jvm.cs 2006-07-28 Gonzalo Paniagua Javier * PageThemeCompiler.cs: Don't generate a 'Items.Clear ()' call if the property Items does not exist. Patch by Marek Habersack that fixes bug #78971. 2006-07-28 Gonzalo Paniagua Javier * TemplateControlCompiler.cs: support assigning nullable types. Patch by Marek Habersack that fixes bug #78970. 2006-07-13 Gonzalo Paniagua Javier * TemplateControlCompiler.cs: make password work again. 2006-06-21 Juraj Skripsky * AspTokenizer.cs (ReadAttValue), AspParser.cs (GetAttributes): MS.NET handles nested quotes differently for server controls and for "normal" controls. Add a property "AlternatingQuotes" to the tokenizer and let the parser decide whether it is well-formed or not. 2006-06-20 Andrew Skiba * PageThemeCompiler.cs, TemplateControlCompiler.cs: take care of UrlPropertyAttribute. 2006-06-18 Andrew Skiba * TemplateControlCompiler.cs: check IsWritablePropertyOrField before generating code for assignment statement and DataBind event. 2006-06-15 Juraj Skripsky * AspTokenizer.cs (ReadAttValue), AspParser.cs (GetAttributes): Don't allow an attribute value to contain the same quote characters as the ones used for delimiting the value itself. Add a token NOTWELLFORMED to signal that case to AspParser. Fixes bug #78643. 2006-06-08 Konstantin Triger * ThemeDirectoryCompiler.cs: use physical path instead of virtual path. 2006-04-24 Andrew Skiba * ThemeDirectoryCompiler.cs: use UrlUtils.Combine to combine pathes 2006-04-23 Andrew Skiba * PageThemeCompiler.cs: initialize __linkedStyleSheets field with the array of style sheets from the parser * ThemeDirectoryCompiler.cs: scan *.css files in theme directory and put them in LinkedStyleSheets of PageThemeParser 2006-04-20 Chris Toshok * BaseCompiler.cs: for 2.0, emit the correct namespace and class names in the case where you use "NS.ClassName" in the Inherits attribute. Fixes bug #78135. 2006-04-20 Gonzalo Paniagua Javier * CachingCompiler.cs: no need to play the Wait/PulseAll game, as we already acquired the lock even when we might have not created the 'key' to the compilation ticket. 2006-04-16 Andrew Skiba * ThemeDirectoryCompiler.cs: add to the directory parser all the assemblies found by PageThemeFileParsers 2006-04-12 Lluis Sanchez Gual * TemplateControlCompiler.cs: Properly read all content of string properties. 2006-04-11 Andrew Skiba * TemplateControlCompiler.cs : fix for partial parsers 2006-04-11 Andrew Skiba * ThemeDirectoryCompiler.cs : map the virtual path to the physical path 2006-04-08 Miguel de Icaza * TemplateControlCompiler.cs: An attempt to fix the regression introduced in r58505 (a bug fix for 77762). This was reported in the mailing list with a batch of new 2.0 failures. We really need a test suite in NUnit to check on ASP.NET aspx changes. 2006-03-27 Robert Jordan * CachingCompiler.cs: change the compilation locking scheme from "one mcs per process" to "one mcs per file". 2006-03-24 Gonzalo Paniagua Javier * System.Web.Compilation/TemplateControlCompiler.cs: handle the new StringPropertyBuilder. 2006-03-24 Chris Toshok * BaseCompiler.cs (GetCompiledType): fall back to CodeDomProvider if system.web/compilation doesn't list a compiler for our language. 2006-03-13 Chris Toshok * TemplateControlCompiler.cs (InitMethod): when generating the call to ApplyStyleSheetSkin, don't just blindly pass "this" as the argument to it. Only do that if the class we're compiling is actually a subclass of Page. If it's not, pass this.Page. 2006-03-07 Chris Toshok * AspGenerator.cs: refactor the parsing code so that we can initiate parsing from outside this class. * PageCompiler.cs (PrependStatementsToFrameworkInitialize): new method, add our StyleSheetTheme assignment here. (AppendStatementsToFrameworkInitialize): rename AddStatements* to this. * TemplateControlCompiler.cs (EnsureID): make protected. (CreateAssignStatementsFromAttributes): same (AddChildCall): same. (CreateControlTree): same. (CreateFrameworkInitializeMethod): change "AddStatementsToFrameworkInitialize" to "AppendStatementsToFrameworkInitialize", and add call to "PrependStatementsToFrameworkInitialize" before the generation of "base.FrameworkInitialize()." * PageThemeCompiler.cs (CreateControlSkinMethod): remove spew. 2006-03-07 Chris Toshok * ThemeDirectoryCompiler.cs: new file. * PageThemeCompiler.cs: new file. 2006-03-07 Chris Toshok * BaseCompiler.cs: fix typo in "initialize" in multiple places. (Init): move the CreateMethods call here. 2006-03-02 Chris Toshok * TemplateControlCompiler.cs (InitMethod): emit an assignment for SkinID just after the creation of our object, and right after that call "_ctrl.ApplyStyleSheetSkin (page)". (CreateAssignStatementsFromAttributes): split out the majority of this code to CreateAssignStatementFromAttribute, and change this method to simply a loop over the attribute keys. In the 2.0 case, skip the SkinID property, since that's handled explicitly in InitMethod. * PageCompiler.cs (AddStatementsToInitMethod): emit assignments for Theme and StyleSheetTheme. 2006-02-23 Chris Toshok * TemplateControlCompiler.cs (AddContentTemplateInvocation): track change from ContentControlBuilderInternal to ContentBuilderInternal. (AddCodeRender): same. 2006-02-16 Gonzalo Paniagua Javier * AssemblyBuilder.cs: * BuildManager.cs: compile the assembly from AssemblyBuilder and use GetGeneratedType() on the BuildProvider instead of loading the assembly and trying a wild guess at the type name. 2006-02-14 Gonzalo Paniagua Javier * GlobalAsaxCompiler.cs: * PageCompiler.cs: * TemplateControlCompiler.cs: CreateMethods is now internal. * WebServiceBuildProvider.cs: * PageBuildProvider.cs: * UserControlBuildProvider.cs: * WebHandlerBuildProvider.cs: new build providers. * BuildProvider.cs: add assemblies. * BaseCompiler.cs: expose the provider and the compile unit through properties. 2006-02-10 Gonzalo Paniagua Javier * CompilerType.cs: implemented. * AssemblyBuilder.cs: implemented most of it. * WebServiceCompiler.cs: * CachingCompiler.cs: update 2.0 compiler instance creation code. * ClientBuildManager.cs: implemented some of its methods. Not yet ready. * BuildManager.cs: the more interesting methods are implemented now. * BaseCompiler.cs: delete the temporary files in case of error. * BuildProvider.cs: implemented the Get*Compiler* protected methods. 2006-02-07 Chris Toshok * TemplateControlCompiler.cs (AddParsedSubObjectStmt): append the calls to AddParsedSubObject to a special statement collection -- builder.flushOutputStatements -- not to builder.method.Statements. (InitMethod): initially, set flushOutputStatements to method.Statements. If we're dealing with a ContentPlaceHolder, set flushOutputStatements to be the else block of a conditional we create. This causes the compiled control to fall back to the ContentPlaceHolder's child controls in case there's no corresponding Content template. (AddChildCall): use methodStatements instead of method.Statements. (CreateControlTree): same. * PageCompiler.cs (CreatePropertyAssign): factor out the string,string implementation and add one that also takes a CodeExpression; make the string,string implementation call the three arg one with thisRef. (AddStatementsToInitMethod): make use of the 3-arg form of CreatePropertyAssign to reduce code. Also, add support for setting the page's Title from the parser's Title. 2006-02-07 Chris Toshok * UserControlCompiler.cs (AddStatementsToInitMethod): emit code to assign __ctrl.MasterPageFile to our master page, if we have one. * PageCompiler.cs (CreateContructor): remove the MasterPageFile assignment from here. (AddStatementsToInitMethod): and move it here. * TemplateControlCompiler.cs (InitMethod): in the case where builder is a RootBuilder (we're building the __BuildControlTree method), call a virtual method so that subclasses can add their own statements to the method (used by both Page and MasterPage); Also, in the RootBuilder case, the argument should be the parser.ClassName type (the class we're building); lastly, expand the ContentPlaceHolder logic to include all the ContentTemplates/InstantiateIn magic. (AddStatementsToInitMethod): empty virtual method. (AddContentTemplateInvocation): ContentControlBuilder -> ContentControlBuilderInternal. (CreateControlTree): same. (CallBaseFrameworkInitialize): new function, create call to base.FrameworkInitialize. (CreateFrameworkInitializeMethod): call CallBaseFrameworkIniitialize. 2006-02-06 Gonzalo Paniagua Javier * IgnoreFileBuildProvider.cs: it's not public. * BuildProvider.cs: mostly implemented. 2006-02-01 Chris Toshok * WebServiceCompiler.cs: CONFIGURATION_2_0 => NET_2_0, and use GetSection instead of GetWebApplicationSection. * CachingCompiler.cs: same. * AspGenerator.cs: same. * BaseCompiler.cs: same. 2006-01-23 Gonzalo Paniagua Javier * AspGenerator.cs: ignore 'thead'. Fixes bug #77326. 2006-01-22 Chris Toshok * IgnoreFileBuildProvider.cs: build provider which does nothing. 2006-01-22 Chris Toshok * AspComponentFoundry.cs (.ctor): use a 2.0 friendly form of the Hashtable ctor to silence a couple of warning. (CompoundFoundry.ctor): same * Directive.cs (InitHash): use a 2.0 friendly form of the Hashtable ctor to silence a couple of warning. * TagAttributes.cs (MakeHash): use a 2.0 friendly form of the Hashtable ctor to silence a warning. (GetDictionary): same. 2006-01-22 Chris Toshok * AppSettingsExpressionBuilder.cs: implement this, patterning it after an example on msdn. Also, enable the ExpressionEditor attribute, but use the string rather than the Type overload so we won't have yet another circular dep. * ConnectionStringsExpressionBuilder.cs: partial implementation. Same deal with the ExpressionEditor attribute. * ResourceExpressionBuilder.cs: same deal with the ExpressionEditor attribute. 2006-01-20 Chris Toshok * ResourceExpressionBuilder.cs (ParseExpression): implement. * ResourceExpressionFields.cs: implement. 2006-01-20 Chris Toshok * ClientBuildManagerParameter.cs: implement. * ClientBuildManagerCallback.cs: this class contains an empty default implementation. 2006-01-10 Gonzalo Paniagua Javier * AspGenerator.cs: add support for 'src' in