1 2009-05-26 Marek Habersack <mhabersack@novell.com>
3 * AspGenerator.cs: before including a file specified with the
4 <!--#include file="" --> directive, check if it's within the
5 current application's root.
7 2009-05-18 Marek Habersack <mhabersack@novell.com>
9 * BuildManager.cs: GetPrecompiledApplicationType () uses
10 VirtualPathUtility.Combine to build global.asax virtual
11 path. Patch from Robert Jordan <robertj@gmx.net>, thanks! Fixes
14 2009-05-10 Marek Habersack <mhabersack@novell.com>
16 * AspGenerator.cs: keep processing the tag if it is not a server
17 one and contains expressions and no code render blocks.
19 2009-05-05 Marek Habersack <mhabersack@novell.com>
21 * BuildManager.cs: RemoveFailedAssemblies wraps the compilation
22 exception to be rethrown in a HttpException instance.
24 * AspGenerator.cs: create a Location and pass it to the parser
25 before calling AddDirective from GetInheritedType, so that we get
26 meaningful exception messages with source, line information etc.
28 2009-05-04 Marek Habersack <mhabersack@novell.com>
30 * ThemeDirectoryBuildProvider.cs: use new AspGenerator constructor
31 which takes AspComponentFoundery as its
32 parameter. AspGenerator.RootBuilder isn't initialized until after
33 the parser is initialized.
35 * TemplateControlCompiler.cs: make sure to call
36 ProcessGeneratedCode on each instance of ControlBuilder after it's
37 fully generated. Fixes bug #500075
39 * TemplateBuildProvider.cs: moved the directive regex to
42 * BaseCompiler.cs: added two internal properties, BaseType and
43 DerivedType, which are used in calls to
44 ControlBuilder.ProcessGeneratedCode. Fixes bug #500075
46 * AspGenerator.cs: implemented a work around for our parser
47 limitation which is unable to extract the page/control's base type
48 before parsing the actual file contents. This is necessary to
49 support ASP.NET MVC's "generic" Inherits attribute. The reason we
50 need to find out what the base type is before parsing the file is
51 that we need to look at the type's custom attributes to see if a
52 root control builder type is specified (which is what ASP.NET MVC
53 does) and, if yes, use it instead of the default type. Fixes bug
56 2009-04-30 Marek Habersack <mhabersack@novell.com>
58 * BuildManager.cs: when BuildInner catches a compilation
59 exception, wrap it in HttpException before re-throwing.
61 2009-04-28 Marek Habersack <mhabersack@novell.com>
63 * AspGenerator.cs: ProcessTag doesn't process a tag which is not
64 server-side and which has declarative expressions embedded. Fixes
67 2009-04-24 Marek Habersack <mhabersack@novell.com>
69 * AspGenerator.cs: ProcessCode should _not_ stop processing the
70 passed code string if the filter's ProcessCodeConstruct returns
71 false. Fixes bug #497775
73 2009-04-21 Marek Habersack <mhabersack@novell.com>
75 * PageCompiler.cs: implemented new way of setting output cache
76 parameters in the 2.0 profile. The generated code is now the same
77 as on .NET and uses the OutputCacheParameters class to pass
78 settings to InitOutputCache.
80 2009-04-17 Marek Habersack <mhabersack@novell.com>
82 * AspGenerator.cs: if thead/tbody are parsed as children of a
83 server-side table control, ignore them. Fixes bug #481622
85 2009-04-16 Marek Habersack <mhabersack@novell.com>
87 * TemplateControlCompiler.cs: using a regexp to check whether an
88 expression is a Bind one. Fixes bug #493639
89 AssignPropertyFromResources now checks whether the field/property
90 passed to it is decorated with the Localizable custom attribute
91 and whether the resource provider contains an entry for that
94 2009-04-15 Marek Habersack <mhabersack@novell.com>
96 * BuildManager.cs: do not add all assemblies in bin/ when serving
97 a precompiled site. Fixes bug #493873
98 When serving a precompiled site, check if the bin/ directory
99 contains certain well-known assemblies and load them if present.
101 2009-04-07 Marek Habersack <mhabersack@novell.com>
103 * TemplateControlCompiler.cs: GenerateExpressionFromString doesn't
104 assume that the passed member is a property anymore. Fixes bug
107 2009-04-06 Marek Habersack <mhabersack@novell.com>
109 * BuildManager.cs: make sure that precompiled is not null before
110 using it in GetPrecompiledType.
112 2009-04-03 Marek Habersack <mhabersack@novell.com>
114 * AspParser.cs: local copy of checksum generated by the tokenizer
115 is made right after parsing is done.
117 * AspGenerator.cs: set tparser.MD5Checksum in Parse instead of in
118 InitParser. Avoids empty checksums in #pragma checksum.
120 2009-04-02 Marek Habersack <mhabersack@novell.com>
122 * CompilationException.cs: skip warnings in ErrorMessage and
125 * BuildManager.cs: when an error occurs while compiling the
126 requested virtual path, throw the exception, do not attempt to
129 * TemplateControlCompiler.cs: implemented missing converter for
130 the ExpandDepth property. Fixes bug #490860
132 2009-04-01 Marek Habersack <mhabersack@novell.com>
134 * AssemblyBuilder.cs: CSharpCodePragmaGenerator.ReserveSpace:
135 added the 2 extra chars to pragmaChecksumStaticCount constant (the
136 ones added by Gonzalo below) and removed one NewLine to account
137 for Martin's change below.
138 VBCodePragmaGenerator.ReserveSpace - one newline follows
140 VBCodePragmaGenerator.DecorateFile - one newline follows
143 2009-04-01 Martin Baulig <martin@ximian.com>
145 * AssemblyBuilder.cs: Don't emit a blank line after the #line as
146 thid'd cause all line numbers to be off by 1.
148 2009-03-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
150 * AssemblyBuilder.cs: the guid has to be quoted.
152 2009-03-31 Marek Habersack <mhabersack@novell.com>
154 * All of the below are part of the fix for bug #489687
156 * ThemeDirectoryCompiler.cs: pass VirtualPath instances to parser
159 * BuildProvider.cs: associated virtual path is stored internally
160 as an instance of VirtualPath, accessible via new
161 VirtualPathInternal property.
163 * BuildManagerDirectoryBuilder.cs: VirtualPath.IsFake is used to
164 detect fake virtual paths.
165 GetBuildProvider now takes a VirtualPath instead of string for the
166 virtualPath parameter. The passed VirtualPath instance is passed
167 unchanged to BuildProvider.
169 * BuildManager.cs: AssertVirtualPathExists now uses
170 VirtualPath.IsFake to check for fake virtual paths.
172 * ApplicationFileBuildProvider.cs, GenericBuildProvider.cs,
173 MasterPageBuildProvider.cs, PageBuildProvider.cs,
174 ThemeBuildProvider.cs, UserControlBuildProvider.cs,
175 WebHandlerBuildProvider.cs, WebServiceBuildProvider.cs:
176 CreateParser overloads now take a VirtualPath instead of a string
177 for the virtualPath parameter.
179 * ThemeBuildProvider.cs: use new parser constructors which take
180 VirtualPath instances instead of strings.
182 2009-03-30 Marek Habersack <mhabersack@novell.com>
184 * AspTokenizer.cs: UpdateChecksum - fixed off-by-one bug when
185 processing the checksum buffer.
187 * AssemblyBuilder.cs: introduced a kludge to add #pragma checksum
188 and #pragma lines (or its vb equivalent - #ExternalSource) to
189 code-behind files named in the CodeFile/Src directives while
190 copying them to the dynamic directory for compilation. The kludge
191 works by recognizing the .cs and .vb extensions and wrapping the
192 file contents in the appropriate directives. This is done in this
193 way because the other possible way, using the
194 CodeSnippetCompileUnit, requires the entire file to be read in
195 memory and then passed to CodeDOM. We fall back to this way when
196 the file being copied is neither C# or VB.
198 2009-03-25 Marek Habersack <mhabersack@novell.com>
200 * AspTokenizer.cs: MD5 checksum calculation happens here. It's
201 done incrementally as characters are read.
203 * AspParser.cs: the MD5 checksum is no longer computed here. Moved
205 After parsing, both the tokenizer and the string reader are
208 * AssemblyBuilder.cs: renamed CopyFile to CopyFileWithChecksum, in
209 prepration for future inclusion of checksum and line pragmas in
210 the file being copied.
211 Files are copied chunk by chunk, not by reading the entire
214 2009-03-23 Zoltan Varga <vargaz@gmail.com>
216 * PageCompiler.cs: Fix the build.
218 2009-03-23 Marek Habersack <mhabersack@novell.com>
220 * TemplateBuildProvider.cs: add values of the CodeFile and Src
221 page/master/control directives to the list of file dependencies.
222 Extract language also for master/page, not only for controls.
224 * PageCompiler.cs: CreateConstructors now triggers master page
225 build, if the current page is using one. Fixes bug #487857
227 2009-03-16 Marek Habersack <mhabersack@novell.com>
229 * AspGenerator.cs: when parsing nested tags (includes tags inside
230 client-side javascript script blocks) pass the closing tag up to
231 the containing parser.
232 Instead of parsing the whole plain text contents, plus the two
233 constructs we're interested in from it using regexs. This is
234 necessary as we might be passed JavaScript code and without
235 understanding its syntax we'll confuse the '<' character for the
237 TagParsed now better handles <script> tags. For both server and
238 client tags ProcessScript is called and the input text, in case of
239 client tags, is read verbatim to be processed when ProcessScript
240 is called to close the tag. At this point the verbatim text is
241 checked whether it contains server-side tags and/or expressions.
243 2009-03-12 Marek Habersack <mhabersack@novell.com>
245 * BuildManager.cs, BuildManagerDirectoryBuilder.cs,
246 BuildProvider.cs, TemplateBuildProvider.cs: dependencies are
247 returned as an IDictionary <string, bool>. Dependencies must be
248 compared case-insensitively.
250 * TemplateBuildProvider.cs: ExtractReferenceDependencies must also
251 extract the value of the Page attribute.
253 2009-02-28 Gonzalo Paniagua Javier <gonzalo@novell.com>
255 * AppResourcesAssemblyBuilder.cs:
256 * BuildManagerDirectoryBuilder.cs:
257 * AspComponentFoundry.cs:
258 * AssemblyBuilder.cs:
259 * CachingCompiler.cs:
261 * WsdlBuildProvider.cs:
264 * AppWebReferencesCompiler.cs:
265 * TemplateControlCompiler.cs:
267 * AppCodeCompiler.cs: settings that have to be in
268 machine.config or the root level web.config now call
269 GetWebApplicationSection.
271 2009-02-26 Marek Habersack <mhabersack@novell.com>
273 * TagAttributes.cs: modified ToString to return string formatted
274 in a more helpful way.
276 * AspParser.cs: added ToString, helpful when debugging.
278 * AspGenerator.cs: properly print leading and trailing plain text
279 when looking for embedded tags in ProcessTagsInAttributes.
281 2009-02-25 Marek Habersack <mhabersack@novell.com>
283 * AspTokenizer.cs: put_back now uses a stack and allows more than
284 one invocation when called inside a tag.
286 * AspGenerator.cs: when a nested parser is used, pay attention to
287 server tags found inside client tags and add them to the control
290 2009-02-24 Marek Habersack <mhabersack@novell.com>
292 * BuildManager.cs: Path.Combine must not be passed null first
295 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
297 * System.Web.Compilation/BuildManager.cs: updated comment.
299 2009-02-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
301 * TemplateControlCompiler.cs: lowercase place holder names
302 * BuildManager.cs: initial support for precompiled sites.
304 2009-02-13 Marek Habersack <mhabersack@novell.com>
306 * AspParser.cs: added an event raised when parsing is complete.
308 * AspGenerator.cs: added support for PageParserFilter which, if
309 found, is used to control certain aspects of code parsing
310 (accepting/rejecting control types, accepting/rejecting code
311 snippets, parsing completion)
312 Added the AddControl method, used by PageParserFilter when a
313 custom filter wants to inject a control in the current control
316 2009-02-05 Marek Habersack <mhabersack@novell.com>
318 * AppResourcesCompiler.cs: implemented a type resolver for
319 ResXResourceReader so that it can correctly resolve
320 System.Resources types which are normally found in
321 System.Windows.Forms but are included by System.Web
322 directly. Without the type resolver, code comparing types inside
323 ResXResourceReader when file references are used in side the .resx
324 file will not work correctly. The reason for that is that .resx
325 files will name "System.Resources.ResXFileRef,
326 System.Windows.Forms" as the file reference handler, while inside
327 System.Web ResXFileRef will be of type
328 "System.Resources.ResXFileRef, System.Web". Fixes bug #466059
330 * GenericBuildProvider.cs: added a new virtual method, MapPath,
331 which can be overriden by builders which need special handling of
332 virtual path mapping.
334 * PageBuildProvider.cs: provide implementation of
335 GenericBuildProvider.MapPath which takes into account fake virtual
336 paths. Fixes bug #463950
338 2009-01-26 Marek Habersack <mhabersack@novell.com>
340 * BuildManagerDirectoryBuilder.cs: added support for fake virtual
343 * CompilationException.cs: added a Message override to make error
344 messages more useful.
346 2009-01-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
348 * AspComponentFoundry.cs: no need to throw. Caller handles a null
351 2009-01-23 Marek Habersack <mhabersack@novell.com>
353 * BuildManager.cs: use -1 for infinite wait in calls to
354 Acquire{Reader,Writer}Lock ().
356 2009-01-22 Marek Habersack <mhabersack@novell.com>
358 * XsdBuildProvider.cs: added missing BuildProviderAppliesTo
361 * BuildProvider.cs: added new internal virtual method,
362 ExtractDependencies() whose purpose is to extract virtual path
363 dependencies without compiling the code, if possible.
365 * TemplateBuildProvider.cs: implemented the new
366 ExtractDependencies () method which uses regular expressions to
367 extract file dependencies from the source without having to
370 * CompilationException.cs: added a new public property, Results,
371 which returns the compilation results.
373 * BuildProviderGroup.cs: added. A simple class descending from
374 List <BuildProvider> which is used to hold a compilation batch -
375 that is a collection of BuildProvider instances.
377 * BuildManagerDirectoryBuilder.cs: new class which takes care of
378 generating compilation batches for the requested virtual path. A
379 set of batches is generated from files found in the same virtual
380 directory as the requested virtual path and all of the
381 dependencies of those files. All files are grouped in batches
382 within which no file depends upon its siblings. An attempt is made
383 to sort the batches from the "least dependent" to the "most
384 dependent" batches - i.e. the batches which do not depend on other
385 batches go to the top.
386 Code generating the batches now correctly detects dependency loops
387 and throws an exception when one is encountered.
388 Batches are represented as instances of a new class -
391 * BuildManagerCacheItem.cs: added. Contains all the compilation
392 result information needed by BuildManager. See below.
394 * BuildManager.cs: complete batch building rewrite:
395 - only one build lock is held instead of a set of compilation
396 tickets. Only one thread can compile anything at one given
398 - retrieving types from the build cache now uses a slim rw lock,
399 so that readers aren't blocked while compilation is in
400 progress. Writer lock is acquired only when adding a newly
401 compiled type to the build cache and when removing it after its
402 dependencies made it invalid.
403 - assembly references for each compilation are now collected
404 dynamically as the source is being compiled, this removed a lot
405 of complexity in dealing with assembles containing conflicting
406 types. As a consequence right now there may exist several
407 loaded assemblies containing the same type, but only the latest
408 of them will be used in new compiles.
409 - the thread compiling code can recurse into the Build method
410 which causes the recursively referenced code to be compiled
411 into a separate, uniquely named, assembly. This deals with all
412 recursion loops and dependency problems.
413 - automatic app domain restart after a certain number of compiles
415 - improved compilation error handling. If a compilation error
416 occurs, the code attempts to recompile the assembly up to 3
417 times, each time removing from the batch the files/virtual
418 paths which failed parsing/compilation. If the attempts failed,
419 another one is made to compile only the virtual path requested
420 by the calling code. Only should that fail a compilation
421 exception is thrown. All the compilation errors are written to
422 stdout if the application is in the debug mode.
423 - changed assembly naming. It now generates assembly names based
424 on whether the compilation is recursive and whether the batch
425 being compiled contains more than one code unit or
427 - compilation results are now stored in the cache as instances of
428 the new BuildManagerCacheItem class, which contains all the
429 information required by BuildManager to return types,
430 assemblies, dependencies etc.
431 - GetReferencedAssemblies now correctly returns only the
432 assemblies defined in the .config files.
433 - GetVirtualPathDependencies does not need to compile code
434 anymore in order to extract virtual path dependencies. New code
435 in BuildProvider.ExtractDependencies () takes care of that.
436 - a BuildManagerDirectoryBuilder class instance is used to
437 generate compilation batches.
438 - if SYSTEMCOR_DEP is undefined use ReaderWriterLock instead of
441 * AssemblyBuilder.cs: added support for keeping track of which
442 code unit was generated by which BuildProvider andr which
443 BuildProvider produced a given source file. Both changes serve the
444 purpose of dealing with compilation errors in BuildManager.
446 * ApplicationFileBuildProvider.cs: added missing
447 BuildProviderAppliesTo attribute
449 2009-01-14 Marek Habersack <mhabersack@novell.com>
451 * AspGenerator.cs: implemented a work around which allows the
452 server controls embedded in client tag attributes to be parsed and
455 2009-01-13 Marek Habersack <mhabersack@novell.com>
457 * TemplateControlCompiler.cs, AspGenerator.cs, BaseCompiler.cs,
458 GlobalAsaxCompiler.cs, PageThemeCompiler.cs: updates related to
459 ControlBuilder cleanup.
461 2009-01-12 Marek Habersack <mhabersack@novell.com>
463 * TemplateControlCompiler.cs: do not generate #line pragmas for
464 plain strings. Fixes bug #461214
466 2008-12-11 Marek Habersack <mhabersack@novell.com>
468 * BaseCompiler.cs: added a new method, InitializeType, to be
469 overriden in child classes when any class initialization needs to
470 be performed before methods, constructors and fields are created.
472 * TemplateControlCompiler.cs: if the parser has any custom
473 controls registered, compile them here - in the InitializeType
476 2008-12-10 Marek Habersack <mhabersack@novell.com>
478 * ParseException.cs: made serializable.
480 * PageCompiler.cs: CreateStronglyTypedProperty calls
481 AddReferencedAssembly to add type's assembly to the unit's
482 references after the typed property has been created.
484 * BaseCompiler.cs: added a new helper method,
485 AddReferencedAssembly to be used whenever an assembly location
486 needs to be added to the compilation unit's list after the parsing
487 is done (e.g. when processing PreviousPageType or MasterPageType
488 properties in PageParser)
490 2008-12-08 Marek Habersack <mhabersack@novell.com>
492 * TemplateControlCompiler.cs: use the correct regex match group
493 index in SanitizeBindCall (), fixes bug #457011
495 2008-12-05 Marek Habersack <mhabersack@novell.com>
497 * BuildManager.cs: attempt to enter the compilation critical
498 section with a timeout up to 3 times before giving up. This avoids
499 deadlocks in situations where there are two virtual directores
500 each containing user controls referencing user controls from the
503 2008-12-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
505 * AspParser.cs: reset to the next character in a partial match in case
506 of failure. Fixes bug #314688.
508 2008-12-01 Marek Habersack <mhabersack@novell.com>
510 * TemplateControlCompiler.cs: instead of adding ContentPlaceHolder
511 instances to the ContentPlaceHolders collection when the
512 placeholder is instantiated in the control build method, collect
513 the ids and store them in ContentPlaceHolders inside the
514 constructor. Fixes bug #449970
515 For each content placeholder generate a public virtual property
516 named "Template_PLACEHOLDERID", this is compatible with what .NET
519 * BaseCompiler.cs: added new virtual method,
520 AddStatementsToConstructor, which is called just before
521 CreateConstructor returns.
523 2008-11-25 Marek Habersack <mhabersack@novell.com>
525 * AspComponentFoundry.cs: GetComponentType methods replaced with
526 GetComponent returning an instance of AspComponent which fully
527 describes the registered item. Components are cached, indexed by
530 * AspComponent.cs: added
532 2008-11-21 Marek Habersack <mhabersack@novell.com>
534 * CompilationException.cs: made serializable.
536 * TemplateControlCompiler.cs: make the Bind regex stricter.
537 When creating Eval expression from Bind, replace single quotes
538 with double quotes. Fixes bug #447597
539 When processing Bind expressions and the regex doesn't match,
542 2008-11-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
544 * AspTokenizer.cs: if there's a newline between the opening server tag
545 and any other special character, treat the block as a code-render
549 2008-11-14 Marek Habersack <mhabersack@novell.com>
551 * TemplateControlCompiler.cs: treat Eval and Bind expressions as
552 verbatim code. The only difference between the two is that in the
553 latter case Bind is replaced with Eval in the output code. Fixes
555 If BindingDirection of the parent template builder is OneWay in
556 RegisterBindingInfo, do not throw an exception but simply do not
557 register the binding.
559 2008-10-29 Marek Habersack <mhabersack@novell.com>
561 * BuildManager.cs: seal the internal classes.
562 Remove unused BuildCacheItem.ValidBuild property.
564 2008-10-16 Marek Habersack <mhabersack@novell.com>
566 * TemplateControlCompiler.cs: IsWritablePropertyOrField doesn't
567 use PropertyInfo.CanWrite to check whether the property is
568 writable anymore, it calls GetSetMethod (false) instead.
570 2008-10-10 Marek Habersack <mhabersack@novell.com>
572 * TemplateControlCompiler.cs: allow whitespace around parentheses
573 in the Bind and Eval expressions.
575 2008-10-09 Marek Habersack <mhabersack@novell.com>
577 * BuildManager.cs: if monoSettings section is found in the
578 system.web section in web.config, use its contents to augment
579 compiler configuration. Used to work around the issue reported in
582 2008-10-08 Marek Habersack <mhabersack@novell.com>
584 * TemplateControlCompiler.cs: templates must be instantiated even
585 for builders which process children as properties.
587 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
589 * AssemblyBuilder.cs: use CodeBase to get to the original assembly
590 path because Location might point the the shadow copy. Bug #409646
593 2008-10-03 Marek Habersack <mhabersack@novell.com>
595 * BuildManager.cs: if an assembly fails to build out of a batch of
596 files, extract the virtual path that was requested by the client
597 and attempt to compile it alone.
599 2008-09-29 Marek Habersack <mhabersack@novell.com>
601 * BuildManagerRemoveEntryEventHandler.cs: added
603 * BuildManager.cs: added a static event to notify interested
604 parties when an entry is removed from the buildCache. Fixes bug
607 2008-09-26 Marek Habersack <mhabersack@novell.com>
609 * BuildManager.cs: when creating a cache entry for a virtual path,
610 make it depend on a list of files built recursively from all the
611 virtual path's dependencies. Fixes bug #430114
613 2008-09-24 Andreia Gaita <avidigal@novell.com>
615 * AspParser.cs: When parsing text which contain xml tags that resemble
616 the end string, append the original text instead of the end string,
617 because the casing might not match between the two. Fixes #320445
619 2008-09-23 Marek Habersack <mhabersack@novell.com>
621 * AspGenerator.cs: ignore whitespace only if it's between
622 CodeRender blocks, not between DataBinding and
623 CodeRenderExpression.
625 2008-09-01 Marek Habersack <mhabersack@novell.com>
627 * BaseCompiler.cs: AssignAppRelativeVirtualPath works with
628 null/empty parser.InputFile now.
630 * AspGenerator.cs: AddTypeToCache works checks whether inputFile
631 is null or empty and does not assume the dependencies ArrayList is
633 CloseControl uses ControlBuilder's OriginalTagName property,
634 should the property/tag name be prefixed with 'prefix:'
636 * CachingCompiler.cs: expect the dependencies ArrayList to be null
639 2008-08-31 Marek Habersack <mhabersack@novell.com>
641 * TemplateControlCompiler.cs: trust builder.BindingContainerType
642 in the 2.0+ profile - do not use container properties to detect
644 Added a helper method, compiled only when DEBUG is defined, to
645 generate Console.WriteLine CodeDOM calls.
646 Templates are processed before anything else, so that children
647 which may depend on parent's templates can get access to them.
649 * BaseCompiler.cs: add line pragmas only if enabled for the
652 2008-08-29 Marek Habersack <mhabersack@novell.com>
654 * AppCodeCompiler.cs: properly handle profile base class
655 specifications which refer to full type names.
657 2008-08-26 Marek Habersack <mhabersack@novell.com>
659 * BuildManager.cs: use VirtualPathUtility.Combine in
660 GetAbsoluteVirtualPath for non-rooted paths.
662 2008-08-19 Marek Habersack <mhabersack@novell.com>
664 * ThemeDirectoryBuildProvider.cs: theme directory dependencies
665 should use only virtual paths for CSS files. Fixes bug #397187
667 2008-08-18 Marek Habersack <mhabersack@novell.com>
669 * TemplateControlCompiler.cs: process expression when they are
670 used used in values of attributes without associated
671 properties. Fixes bug #417883
673 * ResourceExpressionBuilder.cs: added two overloads of
674 CreateGetLocalResourceObject to encompass cases when the generated
675 expression is not assigned to a property but rather used as a
676 parameter to the SetAttribute method. Fixes bug #417883
678 2008-08-14 Marek Habersack <mhabersack@novell.com>
680 * AspGenerator.cs: do not ignore directives inside HTML comments.
682 * TemplateControlCompiler.cs: .NET allows for whitespace between
683 the directive start (<%) and the directive type character. Added
684 code which copes with such situations correctly.
686 2008-08-13 Marek Habersack <mhabersack@novell.com>
688 * TemplateControlCompiler.cs: rewrote the Bind regular expressions
689 to allow for single quotes and an optional second parameter to the
691 Added an Eval regular expression.
692 Both Bind and Eval calls in data expressions are now converted
693 into a CodeDOM method invocations, to allow support for possible
694 languages which use a different call format (previously code
696 Added a method to construct the Eval invoke expression which
697 simplifies code in other areas.
700 2008-08-06 Marek Habersack <mhabersack@novell.com>
702 * TemplateControlCompiler.cs: handle situation when a property of
703 a control for which we're generating the code is of type
704 'Type'. In such case, variable.GetType() will return
705 System.MonoType, which must not be output to the generated
706 source. Thanks to Robert Jordan for giving the idea for the hack!
708 2008-06-30 Marek Habersack <mhabersack@novell.com>
710 * AspGenerator.cs: hush the warnings and fix invalid type
713 * AssemblyBuilder.cs: hush the warnings and add some debugging
716 * AspParser.cs, AppResourcesCompiler.cs, TemplateBuildProvider.cs,
717 CachingCompiler.cs, BaseCompiler.cs, TemplateControlCompiler.cs,
718 SimpleBuildProvider.cs, BuildManager.cs: hush the warnings
720 2008-06-18 Marek Habersack <mhabersack@novell.com>
722 * TemplateControlCompiler.cs: AddChildCall properly processes the
723 PartialCachingAttribute now.
725 2008-06-11 Marek Habersack <mhabersack@novell.com>
727 * BuildManager.cs: if an error occurs while assigning the
728 requested path to an assembly builder inside BuildAssembly, throw
731 * BaseCompiler.cs: do not generate #line pragma for code which
732 exists only in memory.
734 2008-05-30 Marek Habersack <mhabersack@novell.com>
736 * ClientBuildManager.cs: do not use synthetized event accessors
739 2008-05-28 Marek Habersack <mhabersack@novell.com>
741 * AspParser.cs, AspGenerator.cs, BaseCompiler.cs: added support
744 2008-05-19 Marek Habersack <mhabersack@novell.com>
746 * AspGenerator.cs: if the last tag parsed was a code directive,
747 ignore any accumulated text if it's 100% whitespace.
748 Do not parse code render directives inside comments.
750 2008-05-15 Marek Habersack <mhabersack@novell.com>
752 * AspComponentFoundry.cs: treat AssemblyFoundry in a special way
753 when adding a foundry to the array list. AssemblyFoundry instances
754 are stacked at the end of the array list in a LIFO manner. That
755 way TagNameFoundry takes precedence over AssemblyFoundry should
756 the two contain the same type.
758 2008-05-14 Marek Habersack <mhabersack@novell.com>
760 * ParseException.cs: location can be null in the FileText property
763 2008-05-07 Marek Habersack <mhabersack@novell.com>
765 * AspGenerator.cs: push the include file directory to the parser
766 include directory stack and pop it after parsing the include, so
767 that the relative file paths are resolved correctly. Fixes bug
770 2008-05-06 Marek Habersack <mhabersack@novell.com>
772 * TemplateControlCompiler.cs: compatibility - added the
773 __stringResource static field to the generated class and a call to
774 SetStringResourcePointer to the FrameworkInitialize method.
776 * PageCompiler.cs: __fileDependencies should also be defined in
778 Page properties assigned in the page directive should be set
779 inside BuildControlTree in the 2.0 profile.
781 2008-04-29 Marek Habersack <mhabersack@novell.com>
783 * WebServiceCompiler.cs: if compiling a body-less web service, try
784 to load the class type from the loaded assemblies before
785 attempting to find it in the assemblies on disk.
787 2008-04-28 Marek Habersack <mhabersack@novell.com>
789 * BuildManager.cs: ignore bad assemblies in the bin/
790 directory. Fixes bug #315816
792 2008-04-26 Marek Habersack <mhabersack@novell.com>
794 * GenericBuildProvider.cs: the Parse () method should reuse the
795 previously opened TextReader when calling generator.Parse (), to
796 avoid opening the input file multiple times. Fixes bug #383881
798 2008-04-25 Marek Habersack <mhabersack@novell.com>
800 * AspGenerator.cs: put some safeguards in, to make sure streams
801 are closed in any case.
803 2008-04-24 Marek Habersack <mhabersack@novell.com>
805 * AspComponentFoundry.cs: added a new GetComponentType overload
806 which returns component source and a boolean flag whether the
807 control was registered from web.config (2.0).
809 2008-04-22 Marek Habersack <mhabersack@novell.com>
811 * BuildManager.cs: ignore also arbitrary exceptions when
812 batch-building an assembly. Fixes bug #323556
814 2008-04-19 Marek Habersack <mhabersack@novell.com>
816 * BuildManager.cs: use absolute virtual path to query the
817 VirtualPathProvider for path existence.
818 When ASP.NET is self-hosted, force
819 non-batch compilation. Fixes bug #380985
821 * ILocation.cs: added a new property, FileText.
823 * Location.cs: added implementation of the ILocation.FileText
826 * ParseException.cs: use the new ILocation.FileText, if defined,
827 to get the file source.
829 * AspGenerator.cs: when TextReader is present, use it to read with
830 the VirtualPathProvider to read the file source. Fixes bug #381364
832 * AspParser.cs: added a new property FileText to provide the file
833 contents which was read in the constructor.
835 2008-04-18 Marek Habersack <mhabersack@novell.com>
837 * BuildManager.cs: when any parsing error occurs during batch
838 building, ignore the file which caused it. If the file with
839 parsing error is the one requested by user, throw the parsing
840 exception. Fixes bug #323742
842 2008-04-15 Marek Habersack <mhabersack@novell.com>
844 * CachingCompiler.cs: dispose of streams the way it should
847 2008-04-09 Marek Habersack <mhabersack@novell.com>
849 * BuildManager.cs: refactoring - the SetCommonParameters and
850 GetDefaultCompilerTypeForLanguage moved here from BuildProvider,
851 and made internal static.
852 Do not catch compilation exceptions and wrap them in
853 HttpException, let the CompilationException pass through. Fixes
856 * AppWebReferencesCompiler.cs: added - support for compiling of
857 wsdl files found in the App_WebResources directory. Fixes bug
860 * BuildProvider.cs: refactoring - moved the SetCommonParameters
861 and GetDefaultCompilerTypeForLanguage to BuildManager
863 * WsdlBuildProvider.cs: added the CodeCompilerType property
865 Namespace for the generated code is taken from the wsdl path,
866 relative to App_Code or App_WebReferences, if the wsdl in question
867 is under on of those directories.
868 GenerateCode uses OpenReader () so that VirtualPathProvider works
871 * AssemblyBuilder.cs: make sure Encoding.UTF8 is explicitly used
872 when generating source from code unit and use
873 WebEncoding.FileEncoding when adding code files to the unit. Fixes
875 Cope with virtualPath being null in BuildAssembly.
876 Reference assemblies specified in web.config when linking.
878 2008-04-08 Marek Habersack <mhabersack@novell.com>
880 * AspComponentFoundry.cs: add loaded assembly to the
881 BuildManager's list of referenced assemblies instead to
882 WebConfigurationmanager.ExtraAssemblies. Fixes bug #377915
884 * AppCodeCompiler.cs: VirtualPath used in PhysicalToVirtual.
886 * BuildManager.cs: switched to VirtualPath instead of a string
887 path in several methods.
888 Batch compilation is turned off if we have a custom
889 VirtualPathProvider which implements only the VirtualFile and
890 falls back to DefaultVirtualDirectory implementation for directory
892 Added an internal method AddToReferencedAssemblies.
893 Remove invalidated entry from
894 WebConfigurationManager.ExtraAssemblies.
896 * GenericBuildProvider.cs: AddCodeFile accepts a virtual path.
898 * BuildProvider.cs: SetVirtualPath accepts a VirtualPath now.
900 * AssemblyBuilder.cs: constructors use the new VirtualPath class
902 AddCodeFile can use the VirtualPathProvider if necessary now.
903 BuildAssembly overloads accept VirtualPath parameter instead of a
906 * TemplateBuildProvider.cs: GetCodeBehindSource returns the
909 2008-03-31 Marek Habersack <mhabersack@novell.com>
911 * AppCodeCompiler.cs: implemented support for AppInitialize (a
912 static method in any class defined in the App_Code source files),
913 ran just after the App_Code assemblies are compiled in order to
914 perform any application initialization actions.
916 2008-03-27 Marek Habersack <mhabersack@novell.com>
918 * BuildManager.cs: AssertVirtualPathExists now queries the
919 VirtualPathProvider for path existence if physical path check
920 fails, before throwing the 404 exception.
922 2008-03-13 Marek Habersack <mhabersack@novell.com>
924 * BuildManager.cs: if we're running in a case-insensitive
925 environment, use case-insensitive comparer for the build caches.
927 2008-02-29 Marek Habersack <mhabersack@novell.com>
929 * BuildManager.cs: implement a mechanism to ignore certain virtual
930 paths when batch compiling. Helps applications which may have
931 .as?x files which won't work on mono for various reasons (one such
932 sample is mojoportal).
934 2008-02-28 Marek Habersack <mhabersack@novell.com>
936 * TemplateControlCompiler.cs: make sure that data-bound attribute
937 assignments properly convert the Bind expression to the Eval
938 one. Fixes bug #362039
940 * AspGenerator.cs: in 2.0+, aspx files which contain the Content
941 controls can contain only them, whitespace and directives. Fixes
944 2008-02-27 Marek Habersack <mhabersack@novell.com>
946 * AspComponentFoundry.cs: use BuildManager.GetCompiledType in the
947 LoadType method for the 2.0 profile.
949 * CompilationException.cs: use a different format of ErrorMessage
950 for the 2.0+ profile.
952 2008-02-26 Marek Habersack <mhabersack@novell.com>
954 * BuildManager.cs: known file types extensions are now matched
957 2008-02-25 Marek Habersack <mhabersack@novell.com>
959 * TemplateControlCompiler.cs: GetContainerType now checks whether
960 the binding container returned from the builder implements
961 IDataItemContainer (for 2.0+ profiles) and looks for one more
962 property, Rows, if no Items property is found.
964 2008-02-08 Gert Driesen <drieseng@users.sourceforge.net>
966 * AppSettingsExpressionBuilder.cs: Improve exception messages. Return
967 "raw" appsetting value if targetType is null.
969 2008-02-07 Marek Habersack <mhabersack@novell.com>
971 * CompilationException.cs: added new constructor which takes
972 CompilerResults as one of the parameters.
973 Added CompilerOutput property.
975 * AssemblyBuilder.cs: use the new CompilationError constructor.
977 * BuildManager.cs: check for virtualPath existence before
978 attempting to compile the assemblies. Fixes bug #359465
980 2008-02-06 Marek Habersack <mhabersack@novell.com>
982 * GenericBuildProvider.cs: GetGeneratedType may return a type even
983 though the results are null.
985 * AssemblyBuilder.cs: if there are no units, no source files, no
986 resources and no embedded resources in the passed options then
987 do not attempt to compile the assembly. Fixes bug #359325
989 * AppResourcesAssemblyBuilder.cs, AppCodeCompiler.cs: expect that
990 BuildAssembly may return null results.
992 * BuildManager.cs: protect non-page builds from endless recursion
993 if a non-page file recursively references/includes another file
994 from the same batch. If such case is detected, the recursively
995 referenced file is compiled into a separate assembly and removed
996 from the previous compilation batch. Fixes bug #358742.
997 If AssemblyBuilder returns no results from BuildAssembly, it might
998 mean we're dealing with a compilation of empty .as[hm]x files,
999 with no code and only code-behind in bin/. Do not report an error
1000 in that case, only add the compiled types to the cache. Fixes bug
1003 2008-02-05 Marek Habersack <mhabersack@novell.com>
1005 * BuildManager.cs: GetAbsoluteVirtualPath correctly converts
1006 non-rooted relative paths to absolute ones now. Fixes bug
1009 * GenericBuildProvider.cs: introduced a new abstract method,
1010 GetReferencedAssemblies, which is called on descendant builders to
1011 get a list of assemblies referenced by the parsed file. Fixes bug
1014 * AssemblyBuilder.cs: added a new overload of the
1015 AddAssemblyReference method, to be used by build providers to
1016 register assemblies collected by the corresponding parser.
1018 * TemplateBuildProvider.cs, SimpleBuildProvider.cs: implemented
1019 overload of the new abstract method GetReferencedAssemblies.
1021 * AspGenerator.cs: introduced a new overload for the Parse method
1022 which accepts a bool indicating whether or not to initialize the
1023 parser. The overload is used when parsing server-side
1024 includes. Fixes bug #357498
1026 2008-02-04 Marek Habersack <mhabersack@novell.com>
1028 * AssemblyBuilder.cs: do not use WebEncoding.FileEncoding when
1029 generating source code files. Fixes bug #357053.
1031 * AspGenerator.cs: set isApplication before parsing. Fixes bug
1034 2008-01-31 Jb Evain <jbevain@novell.com>
1036 * AspGenerator.cs: correct typo. Fix #357547.
1038 2008-01-27 Marek Habersack <mhabersack@novell.com>
1040 * BuildManager.cs: GetReferencedAssemblies includes the extra
1041 assemblies and the App_Code assemblies. Patch from Mike Morano
1042 <mmorano@mikeandwan.us>, thanks!
1044 2008-01-24 Marek Habersack <mhabersack@novell.com>
1046 * WebHandlerBuildProvider.cs: derive from the new
1047 SimpleBuildProvider class.
1049 * BuildManager.cs: full implementation of the batch compilation
1050 for the 2.0 profile. The implementation is most probably different
1051 to MS.NET's but the effects are the same (or nearly the same -
1052 there are some minor differences). There are missing bits and
1053 pieces, but minor ones - to be added later.
1055 * SimpleBuildProvider.cs: new build provider abstract class
1056 deriving from the GenericBuildProvider that implements common code
1057 for building web handlers and web services.
1059 * GenericBuildProvider.cs: new generic abstract class used to
1060 implement base builder code for all the build provider types and
1061 maximize code reuse.
1063 * PageBuildProvider.cs: derive from the new TemplateBuildProvider
1064 class and implement all the necessary abstract members.
1065 Handle "fake" virtual paths, to properly support generating of the
1068 * BuildProvider.cs: SetVirtualPath now converts the passed path to
1070 Added internal virtual method GenerateCode, used by derived
1072 SetCommonParameters no longer sets the referenced assemblies, this
1073 is done in BuildManager now.
1074 Added an internal virtual property CodeUnit which returns the
1075 build provider's compilation unit.
1077 * PageCompiler.cs: fix assignment of base types for asynchronous
1078 pages, to match MS.NET.
1079 For asynchronous pages, add the necessary methods generation.
1081 * BaseCompiler.cs: default namespace is now set using a constant.
1082 Renamed the Init method into ConstructType, to better reflect its
1083 purpose and made the method internal - it is used by the build
1085 Added several CreateProvider overloads for easier and more unified
1086 compilation provider creation.
1087 Added an internal MainClassType property to enable class type name
1088 retrieval from other parts of the class hierarchy.
1090 * ApplicationFileBuildProvider.cs: new build provider deriving
1091 from the TemplateBuildProvider class to compile the global.asax
1094 * AspGenerator.cs: properly handle parsers which have no input
1095 file path given, but use TextReader instead.
1096 Dependencies are virtual paths now, convert them to physical ones
1097 before creating cache dependency.
1099 * CachingCompiler.cs: parser dependencies are virtual paths now,
1100 convert them to physical ones before creating cache dependency.
1102 * AssemblyBuilder.cs: full implementation of the documented
1103 functionality as well as a lot of internal build code
1104 added. Produces assemblies using the same style what MS.NET for
1105 temporary and target file naming. Handles partial type squashing
1106 if the same partial type is used by several code compile units
1107 added to the same builder instance.
1109 * MasterPageBuildProvider.cs: use the new TemplateBuildProvider
1110 base class and add implementation of all the abstract methods
1113 * ThemeDirectoryBuildProvider.cs: new build provider to compile
1114 theme directories. Replaces the old ThemeDirectoryCompiler class.
1116 * UserControlBuildProvider.cs: use the new TemplateBuildProvider
1117 base class and add implementation of all the abstract methods
1120 * TemplateBuildProvider.cs: new internal abstract class which
1121 implements the common tasks for all the template control build
1124 * WebServiceBuildProvider.cs: use the new SimpleBuildProvider base
1125 type to implement building.
1127 2008-01-17 Igor Zelmanovich <igorz@mainsoft.com>
1129 * BaseCompiler.cs: Assign AppRelativeVirtualPath correctly
1131 2008-01-08 Marek Habersack <mhabersack@novell.com>
1133 * TemplateControlCompiler.cs: statements to assign
1134 fields/properties from resources must be processed at the very end
1135 of the control creation method. Some controls (like HyperLink) can
1136 set their Text attribute using literal content. In such cases, in
1137 order to properly localize the control, the value read from the
1138 local page resources must be assigned after the literal value has
1139 been added to the control. Fixes bug #323494
1141 2008-01-07 Marek Habersack <mhabersack@novell.com>
1143 * CachingCompiler.cs: added an overload to the Compile method
1144 which accepts a flag whether or not to include debug information
1145 in the generated assembly.
1147 2008-01-02 Marek Habersack <mhabersack@novell.com>
1149 * TemplateControlCompiler.cs: add line pragma wherever necessary.
1151 * PageCompiler.cs: reorder the statements to match MS.NET output.
1152 Output line pragma information for directive attributes.
1154 * BaseCompiler.cs: add a set of AddLinePragma methods for various
1156 Output line pragmas when adding server-side scripts to the CodeDOM
1159 * AspGenerator.cs: use ServerSideScript to store script location
1160 in the original file.
1162 * UserControlCompiler.cs: output line pragmas for the init
1165 2007-12-28 Marek Habersack <mhabersack@novell.com>
1167 * PageCompiler.cs: MS.NET compatibility: added the
1168 __fileDependencies object to the generated class.
1169 Refactored the output to match MS.NET more closely.
1170 IHttpHandler or IHttpAsyncHandler are now added to the generated
1171 class list of implemented interfaces.
1173 * BaseCompiler.cs: Main class field references are prefixed with
1175 Refactored the output to match MS.NET more closely.
1177 2007-12-27 Marek Habersack <mhabersack@novell.com>
1179 * BaseCompiler.cs: check for base type globality in all the
1180 location it is used.
1182 2007-12-23 Vladimir Krasnov <vladimirk@mainsoft.com>
1184 * AppSettingsExpressionBuilder.cs: fixed GetAppSetting, should convert
1187 2007-12-21 Marek Habersack <mhabersack@novell.com>
1189 * BaseCompiler.cs: Refactoring. Move the provider creation code to
1190 an internal static method, so that other piece of code which need
1191 to create the provider can do it using the same code.
1192 Added setters to several internal properties, so that they can be
1193 shared with derivative classes.
1195 * WebServiceCompiler.cs: adjust to the changes above. Fixes bug
1198 * CachingCompiler.cs: adjust to the changes above. Also some
1201 2007-12-15 Marek Habersack <mhabersack@novell.com>
1203 * AppCodeCompiler.cs: do not instantiate CodeDomProvider twice.
1205 * BaseCompiler.cs: do not use CreateCompiler () in the 2.0
1206 profile, it's obsoleted. CachingCompiler will use the
1207 CodeDomProvider methods directly in that case.
1209 * WebServiceCompiler.cs: Updated GetCompiledType to acquire
1210 compiler information for the 2.0 profile from system.codeDom.
1212 * CachingCompiler.cs: the Compile overloads do not use the
1213 compiler instance, but call appropriate methods on the
1214 CodeDomProvider instance directly.
1215 Updated some Compile overloads to acquire compiler information for
1216 the 2.0 profile from system.codeDom.
1218 2007-12-14 Juraj Skripsky <js@hotfeet.ch>
1220 * TemplateControlCompiler.cs (AddExpressionAssign):
1221 Make sure expression does not contain prefix.
1223 * AppSettingsExpressionBuilder.cs: Pass type of property to
1224 GetAppSetting, not type of declaring type.
1226 2007-12-13 Marek Habersack <mhabersack@novell.com>
1228 * TemplateControlCompiler.cs, AspComponentFoundry.cs,
1229 AssemblyBuilder.cs, AppResourcesCompiler.cs,
1230 AppResourcesAssemblyBuilder.cs, AppCodeCompiler.cs: speed
1231 optimization - use String.Concat instead of String.Format in some
1234 2007-11-22 Marek Habersack <mhabersack@novell.com>
1236 * PageCompiler.cs: use
1237 pageParser.OutputCacheVaryByContentEncodings when initializing the
1238 output cache in the 2.0 profile.
1240 2007-11-06 Marek Habersack <mhabersack@novell.com>
1242 * BuildManager.cs: properly retrieve the BuildProviderCollection
1243 from configuration files.
1245 2007-11-03 Marek Habersack <mhabersack@novell.com>
1247 * TemplateControlCompiler.cs: do not call converters specified in
1248 the member custom attributes if 'str' is null in
1249 GetExpressionFromString.
1251 2007-10-23 Marek Habersack <mhabersack@novell.com>
1253 * AppResourcesAssemblyBuilder.cs: do not output preservation files
1254 for satellite assemblies, just for the main assembly. Also, don't
1255 add the satellite assemblies to the list of top-level assemblies.
1257 2007-10-17 Marek Habersack <mhabersack@novell.com>
1259 * PageCompiler.cs: added code to set the AsyncMode and
1260 AsyncTimeout Page properties.
1262 2007-10-15 Marek Habersack <mhabersack@novell.com>
1264 * TemplateControlCompiler.cs, WebServiceCompiler.cs,
1265 BuildProvider.cs, BaseCompiler.cs, CachingCompiler.cs: use
1266 HttpApplication.LoadType instead of Type.GetType.
1268 2007-10-10 Marek Habersack <mhabersack@novell.com>
1270 * TemplateControlCompiler.cs: be careful when using type
1271 converters taken from attributes attached to class members. They
1272 may come from the System.Design namespace, which is mostly not
1273 implemented on Mono.
1275 2007-10-01 Marek Habersack <mhabersack@novell.com>
1277 * AppResourcesCompiler.cs: resources are no longer compiled into a
1278 single assembly. Instead, the common assembly construction code
1279 has been moved to AppResourcesAssemblyBuilder to use satellite
1282 * AppResourcesAssemblyBuilder.cs: new resource assembly
1283 construction code which takes care of outputting satellite
1286 2007-09-27 Marek Habersack <mhabersack@novell.com>
1288 * TemplateControlCompiler.cs: support nullable types in
1289 GenerateExpressionFromString.
1291 2007-09-21 Marek Habersack <mhabersack@novell.com>
1293 * TemplateControlCompiler.cs: if we're running on a platform with
1294 the directory separator character that's different to the Unix
1295 style '/' one, convert the input file path to the virtual path
1296 style string, with path parts separated by '/'. Patch from Robert
1297 Jordan <robertj@gmx.net>, thanks! Fixes bug #324229.
1299 2007-09-20 Marek Habersack <mhabersack@novell.com>
1301 * TemplateControlCompiler.cs: if a member passed to
1302 GetExpressionFromString has a TypeConverter attribute set, try to
1303 use the named type converter to convert the string value into the
1304 target type. Fixes bug #325489.
1306 2007-09-14 Marek Habersack <mhabersack@novell.com>
1308 * AppResourcesCompiler.cs: use _culture and _resourceManager
1309 instead of culture and resourceManger in the generated code, to
1310 avoid case problems for languages that are case-insensitive.
1312 2007-09-10 Marek Habersack <mhabersack@novell.com>
1314 * TemplateControlCompiler.cs: cast the expression to the field
1315 type whenever appropriate in GetExpressionFromString.
1316 When generating an object instance and one of the parameters is
1317 System.Type, return a typeof expression.
1319 2007-09-07 Marek Habersack <mhabersack@novell.com>
1321 * TemplateControlCompiler.cs: another modification to the way
1322 TemplateInstance.Single templates are treated. The search for
1323 parent with this attribute set stops as soon as the first
1324 TemplateBuilder is encountered, no matter what the value of its
1325 TemplateInstance attribute is.
1327 2007-09-06 Marek Habersack <mhabersack@novell.com>
1329 * TemplateControlCompiler.cs: ID must be assigned as soon as
1330 possible, before any other attributes of the control are
1331 accessed. The control code may rely on ID being set.
1332 Extend the process of checking if a control is located within a
1333 template with the TemplateInstance.Single attribute set, to all
1334 the parents of the current builder.
1336 2007-09-05 Marek Habersack <mhabersack@novell.com>
1338 * ThemeDirectoryCompiler.cs: all the skin files compiled in one
1339 batch must share the same component foundry. Under MS.NET if any
1340 earlier .skin file registers a control prefix any later .skin
1341 files may use it without registering.
1343 2007-09-04 Marek Habersack <mhabersack@novell.com>
1345 * TemplateControlCompiler.cs: make sure that base class doesn't
1346 contain a field of the same name which is accessible from the
1347 current control if we're within a singleton template.
1348 When generating code for a property or field, use the name
1349 retrieved from the metadata by reflection instead of the one
1350 parsed from html. Fixes bug #82687. Patch from SunHo Kim
1351 <zsunno@gmail.com>, thanks!
1353 2007-08-29 Marek Habersack <mhabersack@novell.com>
1355 * CachingCompiler.cs: consider contents of the
1356 <compilation><assemblies> section when constructing a list of
1357 assemblies during compilation.
1359 * TemplateControlCompiler.cs: mark fields corresponding to the
1360 controls as global references.
1361 When control tree is constructed and the parent of the current
1362 builder is a TemplateBuilder marked with the TemplateInstance
1363 attribute set to Single, use the control's ID as the field
1364 name. This makes it possible to refer to controls inside templates
1365 by name instead of by using FindControl.
1367 2007-08-23 Marek Habersack <mhabersack@novell.com>
1369 * AppCodeCompiler.cs: use HttpApplication.BinDirectoryAssemblies
1370 and HttpApplication.LoadTypeFromBin.
1372 * BuildProvider.cs: use HttpApplication.BinDirectoryAssemblies in
1375 2007-08-21 Marek Habersack <mhabersack@novell.com>
1377 * BuildProvider.cs: use HttpApplication.PrivateBinPath enumerator
1378 to look up assemblies in the binary path(s).
1380 2007-08-19 Juraj Skripsky <js@hotfeet.ch>
1382 * GlobalAsaxCompiler.cs (ProcessObjects): Make string comparison
1383 for scope case insensitive. Fixes bug #82479.
1385 2007-08-14 Marek Habersack <mhabersack@novell.com>
1387 * TemplateControlCompiler.cs: remove dead code.
1389 * AssemblyBuilder.cs: include actual exception information when
1390 reporting inability to load a compiled assembly.
1392 * AppCodeCompiler.cs: remove unused variables.
1394 * AspComponentFoundry.cs: use an ArrayList to implement LIFO for
1395 component collections, instead of the old Queue which implemented
1396 FIFO. Fixes situations when a control registered later for a
1397 certain prefix would not be used in preference to a previously
1398 registered one of the same name.
1400 2007-08-06 Marek Habersack <mhabersack@novell.com>
1402 * AspComponentFoundry.cs: properly add new foundry if the
1403 corresponding entry in the foundries collection is a Queue. Patch
1404 from Juraj Skripsky <juraj@hotfeet.ch>, thanks! Fixes bug #82285.
1406 2007-07-31 Marek Habersack <mhabersack@novell.com>
1408 * AspComponentFoundry.cs: do not overwrite previously registered
1409 foundries when a new one is registered with the same prefix. Fixes
1412 2007-07-18 Marek Habersack <mhabersack@novell.com>
1414 * TemplateControlCompiler.cs: on the 2.0 profile, GetContainerType
1415 does not look up the Item/Items properties to determine the
1416 container type, instead it just returns the type reported by the
1417 builder passed to this method. This change makes the generated
1418 code match MS.NET. Fixes bug #82119.
1420 2007-07-02 Marek Habersack <mhabersack@novell.com>
1422 * TemplateControlCompiler.cs: don't use StartWith to see if a
1423 variable's value is a bind expression, as it erroneously renames
1424 all calls to methods starting with the string Bind. Use a regular
1425 expression now instead. Fixes bug #81928.
1427 2007-06-20 Marek Habersack <mhabersack@novell.com>
1429 * AppResourcesCompiler.cs: use HttpRuntime.InternalCache to keep
1431 * CachingCompiler.cs: as above
1432 * AspGenerator.cs: as above
1434 2007-06-13 Marek Habersack <mhabersack@novell.com>
1436 * TemplateControlCompiler.cs: make sure control has a writable
1437 TemplateControl property prior to assigning values to it.
1439 2007-06-09 Marek Habersack <mhabersack@novell.com>
1441 * TemplateControlCompiler.cs: TemplateControl is assigned for
1442 controls that are placed within ContentPlaceHolder and not for the
1443 ContentPlaceHolder itself.
1444 No longer add the overriden version of TemplateSourceDirectory to
1445 the generated source, all the work is now done in
1446 Control.TemplateSourceDirectory.
1448 * BaseCompiler.cs: AppRelativeVirtualPath shouldn't end with a
1449 slash, for compatibility with MS.NET
1451 2007-06-05 Marek Habersack <mhabersack@novell.com>
1453 * TemplateControlCompiler.cs: TemplateSourceDirectory in the 2.0
1454 profile uses the TemplateControl property instead of Parent. This
1455 allows to return the correct path.
1457 2007-06-01 Marek Habersack <mhabersack@novell.com>
1459 * TemplateControlCompiler.cs: be case-insensitive when looking for
1462 2007-05-29 Marek Habersack <mhabersack@novell.com>
1464 * ThemeDirectoryCompiler.cs: pass the skin file's
1465 virtual path to the skin file parser as its first paramenter, and
1466 not a physical path.
1468 2007-05-28 Marek Habersack <mhabersack@novell.com>
1470 * ResourceExpressionBuilder.cs: properly cast
1471 GetGlobalResourceObject calls to the type of the property being
1474 2007-05-25 Marek Habersack <mhabersack@novell.com>
1476 * TemplateControlCompiler.cs: Changed a few incorrect
1477 ObjectCreationExpression to the correct DelegateCreationExpression.
1480 2007-05-24 Marek Habersack <mhabersack@novell.com>
1482 * PageCompiler.cs: added support for the PreviousPageType directive.
1484 * Directive.cs: as above.
1486 2007-05-22 Marek Habersack <mhabersack@novell.com>
1488 * UserControlCompiler.cs: the Profile property should be present
1489 also in user controls.
1491 2007-05-15 Marek Habersack <mhabersack@novell.com>
1493 * ResourceExpressionBuilder.cs: added a static method to generate
1494 a GetLocalResourceObject call which properly handles types which
1495 cannot be converted from strings.
1497 * TemplateControlCompiler.cs: use code described above to generate
1498 code for properties assigned from resources.
1500 * WsdlBuildProvider.cs: make the code actually work - get the
1501 physical path of VirtualPath instead of converting it to absolute
1503 Do not generate source, add the code unit to assembly builder
1506 * XsdBuildProvider.cs: added
1508 2007-05-08 Marek Habersack <mhabersack@novell.com>
1510 * TemplateControlCompiler.cs: BuildTemplateMethod is a delegate,
1511 so use a delegate create expression - it may make difference for
1512 languages other than C# (e.g. VisualBasic).
1514 2007-05-07 Marek Habersack <mhabersack@novell.com>
1516 * AspGenerator.cs: if the parser's language is implicit (i.e. set
1517 from the default configuration), the first script with the
1518 language attribute present sets the language of the parser.
1520 2007-05-04 Marek Habersack <mhabersack@novell.com>
1522 * TemplateControlCompiler.cs: do not query the parent for
1523 TemplateSourceDirectory if we are generating code for a Master
1526 2007-04-30 Marek Habersack <mhabersack@novell.com>
1528 * ConnectionStringsExpressionBuilder.cs: support expressions with
1529 suffixes .ProviderName and .ConnectionString (case-insensitie) and
1530 generate a call to GetConnectionStringProviderName in the former
1531 case. Fixes bug #81490
1533 * AppCodeCompiler.cs: support for cases when there exists a custom
1534 profile class but there is no App_Code directory or it's
1535 empty. Fixes bug #81489.
1537 * TemplateControlCompiler.cs: fix generation of code for
1538 declarative attribute assignments of the form Font-Size="small"
1539 (i.e. when a font size is assigned a symbolic, relative size
1540 value). This fixes for example rendering of the 0th level of
1543 2007-04-27 Marek Habersack <mhabersack@novell.com>
1545 * AppCodeCompiler.cs: do not look at the number of errors, check
1546 the compiler return code instead.
1547 Resolve assembly names from the global web.config to their
1548 locations before passing them to the compiler provider.
1550 * AssemblyBuilder.cs: as above
1552 * AppResourcesCompiler.cs: as above
1554 * AspComponentFoundry.cs: formatting changes.
1555 AssemblyFoundry looks for the specified namespace+type in the
1556 top-level assemblies if necessary.
1558 2007-04-26 Marek Habersack <mhabersack@novell.com>
1560 * AssemblyBuilder.cs: handle compilation failures in a better
1563 * PageCompiler.cs: the Master property must be in the partial
1564 class if present. Fixes bug #81442
1566 2007-04-20 Marek Habersack <mhabersack@novell.com>
1568 * AppCodeCompiler.cs: fix App_Code build when the directory
1569 contains both known and unknown files.
1571 2007-04-19 Gert Driesen <drieseng@users.sourceforge.net>
1573 * AspComponentFoundry.cs: Fixed build on 1.0 profile. Spaces to
1576 2007-04-19 Marek Habersack <mhabersack@novell.com>
1578 * AppCodeCompiler.cs: yet another method of detecting if we have a
1581 * BaseCompiler.cs: as above
1583 * AspComponentFoundry.cs: implemented delayed loading of control
1584 assemblies. Fixes bug #81058.
1586 2007-04-19 Gert Driesen <drieseng@users.sourceforge.net>
1588 * BaseCompiler.cs: On 2.0, when ClassName attribute contains namespace
1589 then use it instead of the default ASP namespace. Fixes part of bug
1592 2007-04-19 Marek Habersack <mhabersack@novell.com>
1594 * BaseCompiler.cs: don't look at the number of profile properties
1595 when deciding if we have a custom profile. It is possible to have
1596 a profile that just inherits from a base class and does not list
1597 any custom properties. Fixes bug #81396.
1599 * AppCodeCompiler.cs: as above
1601 2007-04-15 Marek Habersack <mhabersack@novell.com>
1603 * AppCodeCompiler.cs: properly convert physical file path to
1604 virtual path for build providers.
1605 Make sure there's actually anything to compile.
1607 2007-04-11 Marek Habersack <mhabersack@novell.com>
1609 * AppCodeCompiler.cs: move custom profile type check till after
1610 the App_Code compilation is done. That way we can have custom
1611 profile providers in there. Fixes bug #81307.
1613 2007-04-10 Marek Habersack <mhabersack@novell.com>
1615 * AppResourceFilesCollection.cs: watch App_LocalResources for
1618 2007-04-06 Marek Habersack <mhabersack@novell.com>
1620 * BaseCompiler.cs: display the source of the file in which the
1621 error actually happened if the file exists, or the unit
1624 2007-04-03 Marek Habersack <mhabersack@novell.com>
1626 * AppResourcesCompiler.cs: global resources are put in the
1627 "Resources." namespace while local ones are not. Fixes bug #81174
1628 which was reopened after r75261.
1630 2007-03-26 Marek Habersack <mhabersack@novell.com>
1632 * TemplateControlCompiler.cs: refactor assining properties from
1633 resources a bit to support pages and user controls. Fixes bug
1635 Process meta:resourcekey after all the field/attribute assignments
1636 are done. Fixes bug #80809.
1637 Clean the code up a bit.
1638 Use GetExpressionFromString to generate a correct expression for
1639 custom page/control attributes. Fixes bug #81132.
1641 2007-03-21 Marek Habersack <mhabersack@novell.com>
1643 * BaseCompiler.cs: cast 'this' to CodeFileBaseClass in
1644 AssignAppRelativeVirtualPath if the attribute was defined.
1646 * TemplateControlCompiler.cs: added support for setting custom
1647 attributes of a base class from the Page or Control directive
1650 2007-03-20 Marek Habersack <mhabersack@novell.com>
1652 * ResourceExpressionBuilder.cs: if the resource class key is null
1653 or empty, call GetLocalResourceObject, if not,
1654 GetGlobalResourceObject. Fixes bug #81174.
1656 2007-03-16 Marek Habersack <mhabersack@novell.com>
1658 * AppCodeCompiler.cs: produce message that makes more sense.
1660 2007-03-15 Marek Habersack <mhabersack@novell.com>
1662 * AppResourcesCompiler.cs: handle global resource keys with dots
1663 the way MS.NET does. All the dots are replaced with underscores
1664 when generating the stronly-typed property.
1666 2007-03-14 Marek Habersack <mhabersack@novell.com>
1668 * AppResourcesCompiler.cs: Fix a bug with global resources file
1669 grouping where no translated resources were processed due to base
1672 * TemplateControlCompiler.cs: hadle situations when there exist a
1673 control in the page with id matching the name of a field/property
1674 in the parent class. In this case we use 'protected new' to
1675 override the parent.
1677 2007-03-13 Marek Habersack <mhabersack@novell.com>
1679 * AspParser.cs: fix an off-by-one parsing bug with server-side
1682 * PageThemeCompiler.cs: let property builders through, stop the
1683 builders that have no control type. Fixes bug #81092
1685 * PageCompiler.cs: interfaces are to be implemented by the parent
1686 partial class, not the generated one.
1688 * AppResourceFilesCollection.cs: added separate constructor for
1689 local resources handling.
1691 * TemplateControlCompiler.cs: request the local resource object
1692 with proper virtual path.
1693 Put field declarations for controls in the partial class.
1694 Make sure builders are in valid state before trying to use them.
1696 * BaseCompiler.cs: added code to assing AppRelativeVirtualPath
1697 property in the page/control constructor.
1698 Change the generated code model for pages/controls to comply with
1699 the way MS.NET does (partial class contains only two properties
1700 plus declarations of all the controls, the actual control/page
1701 class inherits from the partial class). Fixes bug #81001.
1703 * AppResourcesCompiler.cs: does not require specifying manually
1704 whether it's a global or local resource compiler anymore. New
1705 constructors take care of that.
1706 Changed to compile local resources on demand, when a control/page
1709 2007-03-12 Marek Habersack <mhabersack@novell.com>
1711 * AspParser.cs: revert r73587 as it breaks more than it fixes.
1713 * AspComponentFoundry.cs: try to register foundries from App_Code
1714 assemblies if tag prefix and its namespace are defined. Fixes bug
1717 * BuildManager.cs, BaseCompiler.cs: CodeAssemblies is a collection
1718 of Assembly instances, not strings.
1720 * CachingCompiler.cs: make sure items in the CodeAssemblies and
1721 TopLevelAssemblies are really instances of the Assembly class
1722 before trying to use them.
1723 CodeAssemblies is a collection of Assembly instances, not
1726 * AppCodeCompiler.cs: on MS.NET CodeAssemblies is a collection of
1727 assemblies, not paths to assemblies.
1729 2007-03-10 Marek Habersack <mhabersack@novell.com>
1731 * PageCompiler.cs, BaseCompiler.cs: refactoring: moved the
1732 CreateProfileProperty and InternalCreatePageProperty to
1733 BaseCompiler from PageCompiler.
1735 * GlobalAsaxCompiler.cs: generate the Profile property for the
1738 2007-03-09 Marek Habersack <mhabersack@novell.com>
1740 * AppCodeCompiler.cs: Add the GetProfile method to the
1741 ProfileCommon auto-generated class.
1743 * AppResourcesCompiler.cs: attempt to load the resource file
1744 earlier in the process, to gracefully handle empty files.
1746 * ThemeDirectoryCompiler.cs: make compiled themes depend on the
1747 .skin and .css files composing the theme.
1749 2007-03-05 Marek Habersack <mhabersack@novell.com>
1751 * PageThemeCompiler.cs: Use correct theme path for
1752 AppRelativeTemplateSourceDirectory.
1753 Do not process builders of type CodeRenderBuilder.
1754 Make sure builder.ControlType is not null before depending on it.
1756 * ThemeDirectoryCompiler.cs: theme parser should be passed the
1757 virtual directory of the theme.
1759 2007-03-03 Marek Habersack <mhabersack@novell.com>
1761 * PageCompiler.cs: Added support for setting the
1762 MaintainScrollPositionOnPostBack property if the corresponding
1763 page directive attribute is found.
1765 * Directive.cs: added the MaintainScrollPositionOnPostBack and
1766 LinePragmas directives.
1768 2007-03-02 Marek Habersack <grendello@gmail.com>
1770 * AppCodeCompiler.cs: Correctly process App_Code directories which
1771 have no compilable files in the top-level directory. Fixes bug
1773 Write preservation files for the App_Code assemblies.
1775 2007-03-01 Marek Habersack <grendello@gmail.com>
1777 * AspParser.cs: fix GetVerbatim for cases when the end is
1778 e.g. --> or --%> and the string matched is ---> or ---%>
1779 respectively. The new code always backs out to make sure the end is
1782 2007-02-27 Marek Habersack <grendello@gmail.com>
1784 * TemplateControlCompiler.cs: ParseExpression returns an object,
1785 don't assume any concrete type.
1786 Use the current culture when converting the expression to a
1789 * ConnectionStringsExpressionBuilder.cs: Implement support for
1790 expressions of the <%$ ConnectionStrings:StringName %> form
1792 2007-02-19 Marek Habersack <grendello@gmail.com>
1794 * ResourceExpressionBuilder.cs: Do not prepend the .Resources prefix here
1796 2007-02-16 Marek Habersack <grendello@gmail.com>
1798 * CachingCompiler.cs, BaseCompiler.cs: Make sure that no assembly
1799 is referenced twice by the compiler(s).
1801 * TemplateControlCompiler.cs: Fix the problem with cultures which
1802 have a comma as their decimal separator and font/whatever
1803 units. New code does not reparse the text representation of the
1804 unit on the runtime (e.g. 0.9em) but instead it constructs the
1805 property using the FontUnit/Unit constructors which take,
1806 respectively, Unit and double/unittype parameters. This avoids
1807 culture-specific parsing.
1808 Also fix converting from invariant strings in a culture-aware
1809 environment (e.g. in a page that uses Culture="auto") during the
1812 2007-02-12 Marek Habersack <grendello@gmail.com>
1814 * PreservationFile.cs: Support preservation (assembly mapping)
1815 files (the ones with .compiled extension in the ASP.NET temporary
1816 directory). This one implements a loader/saver class.
1818 * AppResourcesCompiler.cs: support for assembly name mapping.
1820 * AppCodeCompiler.cs: support for assembly name mapping.
1822 2007-02-08 Marek Habersack <grendello@gmail.com>
1824 * TemplateControlCompiler.cs: Fix TemplateSourceDirectory.
1826 * AspComponentFoundry.cs: Avoid duplicate control registration
1829 * ResourceExpressionBuilder.cs: Make sure all the global resources
1830 are looked up using the "Resources." prefix.
1832 * AppResourcesCompiler.cs: Make sure all the global resources are
1833 embedded with the "Resources." prefix.
1835 2007-02-02 Marek Habersack <grendello@gmail.com>
1837 * AspGenerator.cs: Move the cache insert code to a separate method, for
1838 use from other places.
1840 * AspComponentFoundry.cs: Register controls mentioned in web.config, but
1841 defer their compilation to the moment when they are actually requested.
1843 2007-01-22 Marek Habersack <grendello@gmail.com>
1845 * ThemeDirectoryCompiler.cs: Make sure the code works for empty themes.
1847 2007-01-20 Miguel de Icaza <miguel@novell.com>
1849 * ClientBuildManager.cs: Remove unused variable (this could be a
1850 real problem, we never use the appPhysicalTargetDir)
1852 * AssemblyBuilder.cs: Remove unused field.
1854 * AppResourceFilesCollection.cs: Remove unused field.
1856 * TemplateControlCompiler.cs (GetExpressionFromString): Remove
1859 * AppResourcesCompiler.cs: Remove unused variable.
1861 * AppSettingsExpressionBuilder.cs (GetAppSetting): remove unused
1864 * PageCompiler.cs: Put InternalCreatePageProperty inside the
1865 NET_2_0 block to eliminate warnings.
1867 2007-01-20 Gert Driesen <drieseng@users.sourceforge.net>
1869 * BaseCompiler.cs: Fixed build on 1.0 profile.
1871 2007-01-20 Marek Habersack <grendello@gmail.com>
1873 * BaseCompiler.cs: If the control base type is in the root
1874 namespace, make sure global:: is prepended to it.
1876 * TemplateControlCompiler.cs: AutoHandlers is obsolete in 2.0,
1877 mark it as such in the generated code as well.
1879 * AppCodeCompiler.cs: Include debug information if configured in
1880 web.config. Fixes bug #80096.
1882 2007-01-17 Marek Habersack <grendello@gmail.com>
1884 * AppCodeCompiler.cs: Reference toplevel assemblies (at this stage
1885 App_GlobalResources) when compiling App_Code sources.
1887 * CachingCompiler.cs: Reference toplevel assemblies when compiling
1890 * AppResourcesCompiler.cs: Close the streams properly.
1892 * AspGenerator.cs: Don't ignore thead/tbody anymore.
1894 2007-01-15 Marek Habersack <grendello@gmail.com>
1896 * WsdlBuildProvider.cs: New build provider for WSDL files.
1897 Compile only when System.Web.Services are present.
1899 * TemplateControlCompiler.cs: Forgotten in the previous commit -
1900 don't pass the current culture to GetLocalResourceObject, let the
1901 method figure it out on its own.
1903 2007-01-05 Marek Habersack <grendello@gmail.com>
1905 * AppResourceFilesCollection.cs: new class to keep and manage
1906 collection of resource files for the App_{Global,Local}Resources
1909 * TemplateControlCompiler.cs: rely on
1910 HttpContext.GetLocalResourceObject to select the correct culture.
1912 * AppResourceFileInfo.cs: new class for keeping resource files
1915 * AppResourcesCompiler.cs: new implementation.
1917 2006-12-20 Marek Habersack <grendello@gmail.com>
1919 * AssemblyBuilder.cs: add an internal version of the
1920 AddCodeCompileUnit method.
1922 * AppCodeCompiler.cs: implement support for ProfileCommon
1923 generation from properties named in the <profile> element in
1926 * PageCompiler.cs: create the Profile property in 2.0 code.
1928 2006-12-12 Vladimir Krasnov <vladimirk@mainsoft.com>
1930 * ThemeDirectoryCompiler.jvm.cs: fixed virtual path for themes
1932 2006-12-10 Igor Zelmanovich <igorz@mainsoft.com>
1934 * ThemeDirectoryCompiler.cs: refactoring.
1936 2006-11-28 Marek Habersack <grendello@gmail.com>
1938 * BuildManager.cs: Add an internal property to signal whether or
1939 not we have any resources from App_{Global,Local}Resources
1941 * AspGenerator.cs: Register controls from
1942 system.web/pages/controls collection before parsing.
1944 * AppResourcesCompiler.cs: Let the build process know if we have
1945 compiled any resources from App_{Global,Local}Resources
1947 2006-11-27 Marek Habersack <grendello@gmail.com>
1949 * CachingCompiler.cs: Automatically reference App_Code
1952 * AppCodeCompiler.cs: Add ~/bin/*.dll to the referenced assemblies
1955 2006-11-25 Marek Habersack <grendello@gmail.com>
1957 * AppResourcesCompiler.cs: small optimizations.
1959 * AppResourceFilesCompiler.cs: small optimizations.
1961 2006-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1963 * WebServiceCompiler.cs: add the type to the cache after getting it
1964 from the compiled assembly.
1966 2006-11-20 Marek Habersack <grendello@gmail.com>
1968 * AppCodeCompiler.cs: Reference assemblies listed in
1969 system.web/compilation/assemblies.
1970 Don't create empty assemblies.
1972 2006-11-19 Igor Zelmanovich <igorz@mainsoft.com>
1974 * TemplateControlCompiler.cs: fixed:
1975 When <%# Bind(...) %>-expression is used more then once for same control
1976 The variable associated with this control is declared only once.
1978 2006-11-18 Marek Habersack <grendello@gmail.com>
1980 * AppResourceFilesCompiler.cs: Fixed an exception thrown when
1981 files with names like File.resources or File.resx are found in the
1982 resource directories.
1984 2006-11-16 Marek Habersack <grendello@gmail.com>
1986 * ForceCopyBuildProvider.cs: Added the build provider for
1989 * MasterPageBuildProvider.cs: Added the build provider for Master
1992 * IgnoreFileBuildProvider.cs: Make the class sealed.
1994 * AppCodeCompiler.cs: Fixed BuildProvider creation for a path. Now
1995 correctly uses the BuildProviderCollection to retrieve the
1996 appropriate builder and maps the physical input file path into
1997 application relative path when setting the virtual path of the
2000 2006-11-13 Marek Habersack <grendello@gmail.com>
2002 * AssemblyBuilder.cs: Added referenced assemblies support. Added a
2003 constructor with just the CodeDomProvider argument. CreateCodeFile
2004 now uses the code provider's file extension. Added internal method
2005 to add pre-generated source code files. Added a BuildAssembly
2006 overload that takes no virtual path as the
2007 parameter. BuildAssembly now uses an array of source files instead
2008 of compile units and also handles embedded resources and
2009 referenced assemblies. BuildAssembly deletes the temporary files
2010 if MONO_ASPNET_NODELET isn't set in the environment.
2012 * AppCodeCompiler.cs: Use the FileUtils methods for temporary file
2013 creation. Use the build providers collection to build unknown
2014 files in App_Code. Use AssemblyBuilder to compile the assembly.
2016 * AppResourceFilesCompiler.cs: Use the FileUtils methods for
2017 temporary file creation.
2019 * WebHandlerBuildProvider.cs: Added the BuildProviderAppliesTo
2022 * UserControlBuildProvider.cs: Added the BuildProviderAppliesTo
2025 * PageBuildProvider.cs: Added the BuildProviderAppliesTo
2028 * WebServiceBuildProvider.cs: Added the BuildProviderAppliesTo
2031 * IgnoreFileBuildProvider.cs: Added the BuildProviderAppliesTo
2034 2006-11-08 Marek Habersack <grendello@gmail.com>
2036 * BuildProvider.cs: Implemented the GetCustomString
2037 method. Removed the necessity to retrieve the CompilationSection
2038 twice when GetDefaultCompilerType is called.
2040 * AppResourcesCompiler.cs: Added resource compiler results
2043 * AppCodeCompiler.cs: The App_Code compiler classes
2045 * BuildManager.cs: Implement the CodeAssemblies property.
2046 Added an internal TopLevelTypes property to be used in the custom
2047 GetType methods. Implemented the GetCompiledCustomString method.
2048 Implemented the GetType method overloads. Implemented the
2049 GetVirtualPathDependencies method.
2051 * BaseCompiler.cs: Reference the assemblies from App_Code, if any
2053 2006-10-18 Marek Habersack <grendello@gmail.com>
2055 * TemplateControlCompiler.cs: add support for resource
2056 expressions in tag attributes.
2058 * ResourceExpressionBuilder.cs: add support for resource
2059 expressions in tag attributes.
2061 * BaseCompiler.cs: add global/local resource assemblies to
2062 compilation references, if present.
2064 * AppResourcesCompiler.cs: global/local resources compiler.
2066 * AppResourceFilesCompiler.cs: compiler of resource files.
2068 2006-10-03 Igor Zelmanovich <igorz@mainsoft.com>
2070 * TemplateControlCompiler.cs: fixed: Bind functions (Data-Binding Syntax).
2071 At run time, the Bind method calls the Eval method, if there is DataItem
2073 If there is DataItem == null (like InsertItemTemplate in FormView) Bind
2074 method don't raise exception and works properly to extract data from
2075 bounded controls on postback.
2077 2006-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2079 * AspGenerator.cs: if we are tracking non-server tags for
2080 well-formedness, handle tags that do not need to be closed (br, img,...)
2083 2006-09-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2085 * PageCompiler.cs: support the EnableEventValidation attribute.
2087 2006-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2089 * AspGenerator.cs: after parsing an include file, don't error out if we
2090 still have opened tags unless this was the last file to parse. Fixes
2093 2006-09-05 Konstantin Triger <kostat@mainsoft.com>
2095 * ParseException.cs: Ensure the source file stream is closed.
2097 2006-08-25 Kornél Pál <kornelpal@gmail.com>
2099 * AppSettingsExpressionBuilder.cs: Use assembly name constants.
2100 * ConnectionStringsExpressionBuilder.cs: Use name reference
2102 * ResourceExpressionBuilder.cs: Use assembly name constants.
2104 2006-08-20 Vladimir Krasnov <vladimirk@mainsoft.com>
2106 * ThemeDirectoryCompiler.jvm.cs: implemented GetCompiledInstance
2108 2006-08-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2110 * ClientBuildManager.cs: handle domain shutdown and unload.
2111 Implemented some properties. Commented.
2113 2006-08-10 Andrew Skiba <andrews@mainsoft.com>
2115 * ThemeDirectoryCompiler.cs: render css path as a virtual path.
2117 2006-08-08 Vladimir Krasnov <vladimirk@mainsoft.com>
2119 * added ThemeDirectoryCompiler.jvm.cs
2121 2006-07-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2123 * PageThemeCompiler.cs: Don't generate a 'Items.Clear ()' call if
2124 the property Items does not exist. Patch by Marek Habersack that fixes
2127 2006-07-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2129 * TemplateControlCompiler.cs: support assigning nullable types.
2130 Patch by Marek Habersack that fixes bug #78970.
2132 2006-07-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2134 * TemplateControlCompiler.cs: make password work again.
2136 2006-06-21 Juraj Skripsky <js@hotfeet.ch>
2138 * AspTokenizer.cs (ReadAttValue), AspParser.cs (GetAttributes):
2139 MS.NET handles nested quotes differently for server controls and
2140 for "normal" controls. Add a property "AlternatingQuotes" to the
2141 tokenizer and let the parser decide whether it is well-formed or not.
2143 2006-06-20 Andrew Skiba <andrews@mainsoft.com>
2145 * PageThemeCompiler.cs, TemplateControlCompiler.cs: take care of
2146 UrlPropertyAttribute.
2148 2006-06-18 Andrew Skiba <andrews@mainsoft.com>
2150 * TemplateControlCompiler.cs: check IsWritablePropertyOrField before
2151 generating code for assignment statement and DataBind event.
2153 2006-06-15 Juraj Skripsky <js@hotfeet.ch>
2155 * AspTokenizer.cs (ReadAttValue), AspParser.cs (GetAttributes):
2156 Don't allow an attribute value to contain the same quote characters
2157 as the ones used for delimiting the value itself. Add a token
2158 NOTWELLFORMED to signal that case to AspParser. Fixes bug #78643.
2160 2006-06-08 Konstantin Triger <kostat@mainsoft.com>
2162 * ThemeDirectoryCompiler.cs: use physical path instead of virtual path.
2164 2006-04-24 Andrew Skiba <andrews@mainsoft.com>
2166 * ThemeDirectoryCompiler.cs: use UrlUtils.Combine to combine pathes
2168 2006-04-23 Andrew Skiba <andrews@mainsoft.com>
2170 * PageThemeCompiler.cs: initialize __linkedStyleSheets field with the
2171 array of style sheets from the parser
2172 * ThemeDirectoryCompiler.cs: scan *.css files in theme directory and
2173 put them in LinkedStyleSheets of PageThemeParser
2175 2006-04-20 Chris Toshok <toshok@ximian.com>
2177 * BaseCompiler.cs: for 2.0, emit the correct namespace and class
2178 names in the case where you use "NS.ClassName" in the Inherits
2179 attribute. Fixes bug #78135.
2181 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2183 * CachingCompiler.cs: no need to play the Wait/PulseAll game, as we
2184 already acquired the lock even when we might have not created the 'key'
2185 to the compilation ticket.
2187 2006-04-16 Andrew Skiba <andrews@mainsoft.com>
2189 * ThemeDirectoryCompiler.cs: add to the directory parser all the
2190 assemblies found by PageThemeFileParsers
2192 2006-04-12 Lluis Sanchez Gual <lluis@novell.com>
2194 * TemplateControlCompiler.cs: Properly read all content of
2197 2006-04-11 Andrew Skiba <andrews@mainsoft.com>
2199 * TemplateControlCompiler.cs : fix for partial parsers
2201 2006-04-11 Andrew Skiba <andrews@mainsoft.com>
2203 * ThemeDirectoryCompiler.cs : map the virtual path to the physical
2206 2006-04-08 Miguel de Icaza <miguel@novell.com>
2208 * TemplateControlCompiler.cs: An attempt to fix the regression
2209 introduced in r58505 (a bug fix for 77762). This was reported in
2210 the mailing list with a batch of new 2.0 failures.
2212 We really need a test suite in NUnit to check on ASP.NET aspx
2215 2006-03-27 Robert Jordan <robertj@gmx.net>
2217 * CachingCompiler.cs: change the compilation locking scheme
2218 from "one mcs per process" to "one mcs per file".
2220 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2222 * System.Web.Compilation/TemplateControlCompiler.cs: handle the new
2223 StringPropertyBuilder.
2225 2006-03-24 Chris Toshok <toshok@ximian.com>
2227 * BaseCompiler.cs (GetCompiledType): fall back to CodeDomProvider
2228 if system.web/compilation doesn't list a compiler for our
2231 2006-03-13 Chris Toshok <toshok@ximian.com>
2233 * TemplateControlCompiler.cs (InitMethod): when generating the
2234 call to ApplyStyleSheetSkin, don't just blindly pass "this" as the
2235 argument to it. Only do that if the class we're compiling is
2236 actually a subclass of Page. If it's not, pass this.Page.
2238 2006-03-07 Chris Toshok <toshok@ximian.com>
2240 * AspGenerator.cs: refactor the parsing code so that we can
2241 initiate parsing from outside this class.
2243 * PageCompiler.cs (PrependStatementsToFrameworkInitialize): new
2244 method, add our StyleSheetTheme assignment here.
2245 (AppendStatementsToFrameworkInitialize): rename AddStatements* to
2248 * TemplateControlCompiler.cs (EnsureID): make protected.
2249 (CreateAssignStatementsFromAttributes): same
2250 (AddChildCall): same.
2251 (CreateControlTree): same.
2252 (CreateFrameworkInitializeMethod): change
2253 "AddStatementsToFrameworkInitialize" to
2254 "AppendStatementsToFrameworkInitialize", and add call to
2255 "PrependStatementsToFrameworkInitialize" before the generation of
2256 "base.FrameworkInitialize()."
2258 * PageThemeCompiler.cs (CreateControlSkinMethod): remove spew.
2260 2006-03-07 Chris Toshok <toshok@ximian.com>
2262 * ThemeDirectoryCompiler.cs: new file.
2264 * PageThemeCompiler.cs: new file.
2266 2006-03-07 Chris Toshok <toshok@ximian.com>
2268 * BaseCompiler.cs: fix typo in "initialize" in multiple places.
2269 (Init): move the CreateMethods call here.
2271 2006-03-02 Chris Toshok <toshok@ximian.com>
2273 * TemplateControlCompiler.cs (InitMethod): emit an assignment for
2274 SkinID just after the creation of our object, and right after that
2275 call "_ctrl.ApplyStyleSheetSkin (page)".
2276 (CreateAssignStatementsFromAttributes): split out the majority of
2277 this code to CreateAssignStatementFromAttribute, and change this
2278 method to simply a loop over the attribute keys. In the 2.0 case,
2279 skip the SkinID property, since that's handled explicitly in
2282 * PageCompiler.cs (AddStatementsToInitMethod): emit assignments
2283 for Theme and StyleSheetTheme.
2285 2006-02-23 Chris Toshok <toshok@ximian.com>
2287 * TemplateControlCompiler.cs (AddContentTemplateInvocation): track
2288 change from ContentControlBuilderInternal to
2289 ContentBuilderInternal.
2290 (AddCodeRender): same.
2292 2006-02-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2294 * AssemblyBuilder.cs:
2295 * BuildManager.cs: compile the assembly from AssemblyBuilder and use
2296 GetGeneratedType() on the BuildProvider instead of loading the assembly
2297 and trying a wild guess at the type name.
2299 2006-02-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2301 * GlobalAsaxCompiler.cs:
2303 * TemplateControlCompiler.cs: CreateMethods is now internal.
2305 * WebServiceBuildProvider.cs:
2306 * PageBuildProvider.cs:
2307 * UserControlBuildProvider.cs:
2308 * WebHandlerBuildProvider.cs: new build providers.
2310 * BuildProvider.cs: add assemblies.
2312 * BaseCompiler.cs: expose the provider and the compile unit through
2315 2006-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2317 * CompilerType.cs: implemented.
2319 * AssemblyBuilder.cs: implemented most of it.
2321 * WebServiceCompiler.cs:
2322 * CachingCompiler.cs: update 2.0 compiler instance creation code.
2324 * ClientBuildManager.cs: implemented some of its methods. Not yet
2327 * BuildManager.cs: the more interesting methods are implemented now.
2329 * BaseCompiler.cs: delete the temporary files in case of error.
2331 * BuildProvider.cs: implemented the Get*Compiler* protected methods.
2333 2006-02-07 Chris Toshok <toshok@ximian.com>
2335 * TemplateControlCompiler.cs (AddParsedSubObjectStmt): append the
2336 calls to AddParsedSubObject to a special statement collection --
2337 builder.flushOutputStatements -- not to builder.method.Statements.
2338 (InitMethod): initially, set flushOutputStatements to
2339 method.Statements. If we're dealing with a ContentPlaceHolder,
2340 set flushOutputStatements to be the else block of a conditional we
2341 create. This causes the compiled control to fall back to the
2342 ContentPlaceHolder's child controls in case there's no
2343 corresponding Content template.
2344 (AddChildCall): use methodStatements instead of method.Statements.
2345 (CreateControlTree): same.
2347 * PageCompiler.cs (CreatePropertyAssign): factor out the
2348 string,string implementation and add one that also takes a
2349 CodeExpression; make the string,string implementation call the
2350 three arg one with thisRef.
2351 (AddStatementsToInitMethod): make use of the 3-arg form of
2352 CreatePropertyAssign to reduce code. Also, add support for
2353 setting the page's Title from the parser's Title.
2355 2006-02-07 Chris Toshok <toshok@ximian.com>
2357 * UserControlCompiler.cs (AddStatementsToInitMethod): emit code to
2358 assign __ctrl.MasterPageFile to our master page, if we have one.
2360 * PageCompiler.cs (CreateContructor): remove the MasterPageFile
2361 assignment from here.
2362 (AddStatementsToInitMethod): and move it here.
2364 * TemplateControlCompiler.cs (InitMethod): in the case where
2365 builder is a RootBuilder (we're building the __BuildControlTree
2366 method), call a virtual method so that subclasses can add their
2367 own statements to the method (used by both Page and MasterPage);
2368 Also, in the RootBuilder case, the argument should be the
2369 parser.ClassName type (the class we're building); lastly, expand
2370 the ContentPlaceHolder logic to include all the
2371 ContentTemplates/InstantiateIn magic.
2372 (AddStatementsToInitMethod): empty virtual method.
2373 (AddContentTemplateInvocation): ContentControlBuilder ->
2374 ContentControlBuilderInternal.
2375 (CreateControlTree): same.
2376 (CallBaseFrameworkInitialize): new function, create call to
2377 base.FrameworkInitialize.
2378 (CreateFrameworkInitializeMethod): call CallBaseFrameworkIniitialize.
2380 2006-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2382 * IgnoreFileBuildProvider.cs: it's not public.
2383 * BuildProvider.cs: mostly implemented.
2385 2006-02-01 Chris Toshok <toshok@ximian.com>
2387 * WebServiceCompiler.cs: CONFIGURATION_2_0 => NET_2_0, and use
2388 GetSection instead of GetWebApplicationSection.
2390 * CachingCompiler.cs: same.
2392 * AspGenerator.cs: same.
2394 * BaseCompiler.cs: same.
2396 2006-01-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2398 * AspGenerator.cs: ignore 'thead'. Fixes bug #77326.
2400 2006-01-22 Chris Toshok <toshok@ximian.com>
2402 * IgnoreFileBuildProvider.cs: build provider which does nothing.
2404 2006-01-22 Chris Toshok <toshok@ximian.com>
2406 * AspComponentFoundry.cs (.ctor): use a 2.0 friendly form of the
2407 Hashtable ctor to silence a couple of warning.
2408 (CompoundFoundry.ctor): same
2410 * Directive.cs (InitHash): use a 2.0 friendly form of the
2411 Hashtable ctor to silence a couple of warning.
2413 * TagAttributes.cs (MakeHash): use a 2.0 friendly form of the
2414 Hashtable ctor to silence a warning.
2415 (GetDictionary): same.
2417 2006-01-22 Chris Toshok <toshok@ximian.com>
2419 * AppSettingsExpressionBuilder.cs: implement this, patterning it
2420 after an example on msdn. Also, enable the ExpressionEditor
2421 attribute, but use the string rather than the Type overload so we
2422 won't have yet another circular dep.
2424 * ConnectionStringsExpressionBuilder.cs: partial implementation.
2425 Same deal with the ExpressionEditor attribute.
2427 * ResourceExpressionBuilder.cs: same deal with the
2428 ExpressionEditor attribute.
2430 2006-01-20 Chris Toshok <toshok@ximian.com>
2432 * ResourceExpressionBuilder.cs (ParseExpression): implement.
2434 * ResourceExpressionFields.cs: implement.
2436 2006-01-20 Chris Toshok <toshok@ximian.com>
2438 * ClientBuildManagerParameter.cs: implement.
2440 * ClientBuildManagerCallback.cs: this class contains an empty
2441 default implementation.
2443 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2445 * AspGenerator.cs: add support for 'src' in <script runat="server">.
2448 2006-01-04 Chris Toshok <toshok@ximian.com>
2450 * WebServiceCompiler.cs (GetCompiledType): add CONFIGURATION_2_0
2453 * AspGenerator.cs (CheckLanguage): add CONFIGURATION_2_0 code.
2455 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2457 * AspGenerator.cs: fix yesterday's fix.
2459 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2461 * AspGenerator.cs: only do special processing for <script> if it has
2462 the runat="server" attribute. Fixes bug #76918.
2464 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2466 * TemplateControlCompiler.cs: treat LightGrey as a synonym of LightGray.
2469 2005-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2471 * TemplateControlCompiler.cs: handle data bound attributes for html
2472 controls. Fixes bug #76785.
2474 2005-11-28 Chris Toshok <toshok@ximian.com>
2476 * CachingCompiler.cs (Compile): CONFIGURATION_2_0 work.
2478 * BaseCompiler.cs (GetCompiledType): CONFIGURATION_2_0 work.
2480 2005-11-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2482 * WebServiceCompiler.cs: fixed caching for web handlers.
2484 2005-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2486 * AspParser.cs: don't change case for verbatim IDs.
2489 2005-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2491 * AspParser.cs: when processing verbatim input, throw if we reach EOF
2492 before the expected end of the data.
2494 2005-09-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2496 * CachingCompiler.cs:
2497 * WebServiceCompiler.cs: when caching a type loaded from an assembly
2498 that we didn't compile, make it depend on the file itself, not on a
2499 non-existing cache key. This problem affected performance of web
2500 services and .ashx, making unnecessary extra calls to LoadFrom every
2501 time the cache was cleared.
2503 2005-09-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2505 * BaseCompiler.cs: set the domain's DynamicBase property instead of
2506 guessing it in BaseCompiler.
2508 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2510 * WebServiceCompiler.cs: apply the same fix as in r45440 that fixed bug
2511 75146 for pages/controls.
2513 2005-08-09 Miguel de Icaza <miguel@novell.com>
2515 * WebServiceCompiler.cs: Use the new DynamicDir method.
2517 * BaseCompiler.cs: Use the DynamicBase property as a hint, but
2518 since this value is null most of the time, compute the real value.
2520 Added Bonus: if the directory has some kind of permission problem,
2521 try a different directory name.
2523 2005-07-13 Miguel de Icaza <miguel@novell.com>
2525 * AspGenerator.cs (AspGenerator.CheckLanguage): Use
2526 BaseParser.Context for the context.
2528 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2532 * TemplateControlCompiler.cs: use invariant culture versions of starts/
2535 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2537 * TemplateControlCompiler.cs: comparison between member name and the
2538 first part of the id provided by the user should also be
2539 case-insensitive. Fixes bug #75379.
2541 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2543 * CachingCompiler.cs: use cache.InsertPrivate.
2544 * AspGenerator.cs: use cache.InsertPrivate. Removed extra call to
2547 2005-06-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2549 * CachingCompiler.cs: create the assemly in the DynamicBase directory,
2550 as all the others, when compiling an assembly from a Src file. Fixes
2553 2005-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2555 * TemplateControlCompiler.cs: if the property is not found, don't forget
2556 about trying the field.
2558 2005-06-13 Lluis Sanchez Gual <lluis@novell.com>
2560 * Directive.cs: Register the MasterType directive.
2561 * PageCompiler.cs: If a MasterType is specified, add a type specific
2562 Master property. All this fixes bug #75192.
2564 2005-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2566 * TemplateControlCompiler.cs: when mapping an attribute name to a field
2567 or property name, there's no need to try with every property and field,
2568 but just the one found when searching by name (no case). There was one
2569 call to ProcessPropertiesAndFields per property or field until found,
2570 now only one if the property/field is found, none otherwise.
2572 2005-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2574 * TemplateControlCompiler.cs: allow more than 2 levels when looking for
2575 properties of fields for an attribute like "Prop1-Prop2-Prop3". Fixes
2578 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2580 * BaseCompiler.cs: when the OutputAssembly is null, we can still have
2581 the assembly file there and be able to load it. Thanks to Rogerio and
2584 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2586 * AspParser.cs: InvariantCulture love.
2588 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2590 * TemplateControlCompiler.cs: use the Page AddContentTemplate method,
2591 as the one in Master is protected. Fixes bug #75157.
2593 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2595 * AspComponentFoundry.cs: tagnames have precedence over types in
2596 assemblies when they use the same prefix. Fixes bug #71855.
2598 2005-05-03 Lluis Sanchez Gual <lluis@novell.com>
2600 * WebServiceCompiler.cs: Create the temp directory before
2601 creating the web service source code file.
2603 2005-04-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2605 * AspGenerator.cs: when checking languages, try to match other aliases
2606 too (ie, 'cs' == 'c#').
2608 2005-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2610 * BaseCompiler.cs: check that DynamicBase directory exists before
2611 creating the TempFileCollection.
2613 2005-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2615 * AspGenerator.cs: use a stack for non-server tags even before getting
2616 to a form. Fixes bug #70274.
2618 2005-04-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2620 * AspParser.cs: don't error out on ill formed tags if it's not a server
2621 tag (ie, allow something like '<table align="left cellpadding="0">' to
2622 work, as MS does. Fixes bug #67909.
2624 2005-04-20 Rafael Teixeira <rafaelteixeirabr@hotmail.com>
2625 * BaseCompiler.cs: do the bridge of Explicit/Strict attributes from
2626 @Page/@Control directives to CodeDOM (VB.NET support)
2628 2005-04-19 Lluis Sanchez Gual <lluis@novell.com>
2630 * AspParser.cs: Fixed parsing of data binding tags in server
2631 tag attributes. Allow <%...%> blocks not assigned to
2632 attributes in client tags.
2633 * TagAttributes.cs: Make sure that data binding blocks in server
2634 tags are always assigned to attributes.
2636 2005-04-15 Lluis Sanchez Gual <lluis@novell.com>
2638 * TemplateControlCompiler.cs: Implemented support for two-way
2641 2005-04-14 Lluis Sanchez Gual <lluis@novell.com>
2643 * TemplateControlCompiler.cs: Use the new BindingContainerType
2644 property to find the type of the binding container.
2646 2005-04-07 Lluis Sanchez Gual <lluis@novell.com>
2648 * TemplateControlCompiler.cs: Avoid using the GetConverter() trick
2649 for primitive types. Parse an empty color string as Color.Empty.
2650 Get the converter for a property using its PropertyDescriptor.
2652 2005-04-05 Lluis Sanchez Gual <lluis@novell.com>
2654 * TemplateControlCompiler.cs: Don't autogenerate IDs for
2655 controls inside Content template.
2657 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2659 * TemplateControlCompiler.cs: make typedesc.aspx work again.
2661 2005-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2663 * ExpressionBuilderContext.cs:
2664 * ExpressionBuilder.cs: implemented.
2666 2005-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2668 * AspGenerator.cs: don't fail on <tbody runat=server>. Fixes bug #71856.
2670 2005-01-28 Lluis Sanchez Gual <lluis@novell.com>
2672 * TemplateControlCompiler.cs: When generating a property value,
2673 check for TypeConverterAttribute in the PropertyInfo, not only in the
2675 Implemented code generation using InstanceDescriptor, when the type
2676 converter supports conversion to that type.
2678 2005-01-21 Lluis Sanchez Gual <lluis@novell.com>
2680 * Directive.cs: Added MASTER directive.
2681 * AspGenerator.cs: Use UserControlCompiler for compiling master pages.
2682 * PageCompiler.cs: Set the master file name when generating the page.
2683 * TemplateControlCompiler.cs: When generating the method for a
2684 content holder, register the content holder in the base MasterPage.
2685 Added method for registering a Content control for a MasterPage.
2686 Generate code for Content controls.
2688 2005-01-10 Lluis Sanchez Gual <lluis@novell.com>
2690 * TemplateControlCompiler.cs: Get the container type from the
2691 template (if it was defined using TemplateContainerAttribute.
2693 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2695 * AspGenerator.cs: correctly process script tags that self-closing.
2698 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2700 * CachingCompiler.cs: when compiling a single .cs file, add the file
2701 itself to dependencies. Fixes bug #68788.
2703 2004-09-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2705 * ControlBuilder.cs: don't close server tags when we get to a closing
2706 tag that is not applied to a server control. Fixes bug #60323.
2708 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2710 * WebServiceCompiler.cs: fix buglet in my last commit.
2712 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2715 * CachingCompiler.cs:
2716 * WebServiceCompiler.cs: correctly cache Type instead of the assembly
2717 for ashx/asmx. Otherwise we need to open the file and check for the
2718 class name in there. Thanks to Ben for pointing this out.
2720 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2723 * AspTokenizer.cs: prevent quotes from being swallowed when we're
2724 inside a server tag and they are the next non-whitespace character.
2727 2004-09-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2729 * CachingCompiler.cs: don't try to watch for changes in system
2730 assemblies. Fixes bug #64871.
2732 2004-09-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2734 * AspGenerator.cs: handle builders that need to process inner text
2737 * Location.cs: added setters for the properties.
2739 2004-08-02 Duncan Mak <duncan@ximian.com>
2741 * BuildProviderResultFlags.cs:
2742 * IImplicitResourceProvider.cs:
2743 * ImplicitResourceKey.cs:
2744 * IResourceReader.cs: Added.
2746 2004-07-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2748 * AspGenerator.cs: the path for file was treated as virtual, but it's
2749 physical. Fixes bug #61524.
2751 2004-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2753 * AspParser.cs: fixed case-sensitivity issues with #include and its
2754 attributes. Closes #61429.
2756 2004-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2759 * WebServiceCompiler.cs: really create the dlls under DynamicBase
2761 2004-06-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2763 * TemplateControlCompiler.cs: for system colors, use SystemColors class
2764 instead of Color. Fixes bug #60249.
2766 2004-06-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2768 * BaseCompiler.cs: try getting the Type from the cache before doing the
2769 real work. Remove temporary files right after successful compilation.
2771 * CachingCompiler.cs: added GetTypeFromCache.
2773 * UserControlCompiler.cs: nothing interesting.
2775 * WebServiceCompiler.cs: try getting the Type from the cache before
2776 doing anything else. Remove temp files on sucessful compilation.
2778 2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2781 * CachingCompiler.cs: use a different prefix when caching compiler
2784 2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2786 * BaseCompiler.cs: dynamicBase is now protected. Check
2787 MONO_ASPNET_NODELETE here.
2789 * TemplateControlCompiler.cs: if the type is not known but has a
2790 TypeConverter, invoke ConvertFromString in the generated code.
2792 * WebServiceCompiler.cs: it used a hardcoded C# compiler, now it gets
2793 the compiler from the configuration. Also handle MONO_ASPNET_NODELETE.
2795 * CachingCompiler.cs: updated compilation of web services and simple
2798 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2800 * CSCompiler.cs: removed.
2802 * CachingCompiler.cs: language independent compilation for single files.
2804 2004-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2807 * WebServiceCompiler.cs: adapted to the 'new' CachingCompiler.
2808 * CachingCompiler.cs: use HttpRuntime.Cache.
2810 2004-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2812 * PageCompiler.cs: fixed Trace and add support for Buffer.
2814 2004-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2816 * PageCompiler.cs: override CreateConstructor to add assignment for
2819 2004-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2821 * TemplateControlCompiler.cs: use CodeDelegateCreateExpression instead
2822 of CodeObjectCreateExpression for the render method delegate. Thanks
2825 2004-05-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2827 * BaseCompiler.cs: use DynamicBase for the output assemblies.
2829 2004-05-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2831 * AspGenerator.cs: ObjectTagBuilder do not override HasBody now.
2833 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2835 * AspParser.cs: indent a few lines.
2836 * AspTokenizer.cs: added ungetc() used when we read a '/' in an unquoted
2837 attribute value. This way we can simulate reading 2 characters ahead
2838 (one in ungetc and the other in Peek) and work with values like
2839 text/javascript. Fixes bug #57302.
2841 2004-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2843 * AspParser.cs: ignore whitespace after directives. Fixes bug #58057.
2845 2004-04-02 Lluis Sanchez Gual <lluis@ximian.com>
2847 * TemplateControlCompiler.cs: Fixed build for net_1_0 profile.
2849 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2851 * GlobalAsaxCompiler.cs: removed Imports and Assemblies properties.
2853 2004-02-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2855 * AspGenerator.cs: error out when <object> server tag is not closed.
2856 Ignore any content inside it.
2858 2004-02-10 Jackson Harper <jackson@ximian.com>
2860 * AspTokenizer.cs: Collect discarded characters that might be used
2861 in client side scripts. Patch by Liyu Liu.
2862 * AspParser.cs: Add discarded characters. Patch by Liyu Liu.
2864 2004-02-10 Jackson Harper <jackson@ximian.com>
2866 * BaseCompiler.cs: Use the TempDirectory for compilation. Fixes
2869 2004-01-30 Jackson Harper <jackson@ximian.com>
2871 * TemplateControlCompiler.cs: Call ToString on the types hashcode,
2872 the build method takes strings not ints.
2874 2004-01-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2876 * AspGenerator.cs: handle more possible errors in global.asax file.
2878 * BaseCompiler.cs: added utility methods for creating <object> related
2879 properties and fields.
2881 * GlobalAsaxCompiler.cs: keep around applications and session scope
2882 objects builders. Also a list of imports and assemblies added in
2885 * TemplateControlCompiler.cs: use base class methods for <object> stuff.
2887 2004-01-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2889 * AspGenerator.cs: use the Cache to store compiled Types. Don't parse
2890 pages more than once. Thanks to Eric Lindvall for pointing this out.
2892 2004-01-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2894 * TemplateControlCompiler.cs: allow handling subproperties for other
2895 types than Style and Font. Fixes bug #53217.
2897 2004-01-16 Jackson Harper <jackson@ximian.com>
2899 * TagAttribute.cs: attributes can be stored as encoded html so we
2902 2004-01-14 Jackson Harper <jackson@ximian.com>
2904 * TemplateControlCompiler.cs: Is a user control is cached and
2905 shared use the controls type hashcode for the GUID so it will be
2906 the same across instances.
2908 2004-01-13 Jackson Harper <jackson@ximian.com>
2910 * TemplateControlCompiler.cs: If an item has the partial caching
2911 attribute build a PartialCachingControl in the parents __Build method.
2912 * BaseCompiler.cs: Add a method for adding class attributes to the
2914 * UserControlCompiler.cs: If caching is enabled on a user control
2915 add the PartialCachingAttribute to it.
2917 2004-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2919 * PageCompiler.cs: invoke Request.ValidateInput if required.
2921 2004-01-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2923 * AspGenerator.cs: don't rely on GC to close the files parsed. Fixes bug
2924 #52521. Patch by liyul@hotmail.com.
2926 2003-12-25 Jackson Harper <jackson@ximian.com>
2928 * AspGenerator.cs: Allow scriptlets in javascript. This fixes bug
2931 2003-12-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2933 * PageCompiler.cs: assign the ErrorPage property if provided.
2935 2003-12-15 Jackson Harper <jackson@ximian.com>
2937 * PageCompiler.cs: Add Trace and TraceMode to framework initialize
2938 method if they are set.
2940 2003-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2942 * AspGenerator.cs: ignore <tbody> when we're inside a server table and
2943 fail when runat="server" is applied to <tbody> with a parse error
2944 instead of waiting for a compilation error. Fixes bug #52157.
2946 2003-12-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2948 * AspGenerator.cs: basic checking of ID validity. Throw a
2949 ParseException when mixing languages.
2951 2003-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2953 * PageCompiler.cs: assign LCID, Culture and/or UICulture in
2954 FrameworInitialize() if provided in @Page.
2958 2003-11-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2960 * TemplateControlCompiler.cs: support for expressions of
2961 System.Drawing.Size type. Allow getting Color from comma separated
2962 numbers, which is not allowed by ColorConverter.
2964 This makes http://www.codeproject.com/aspnet/asppopup.asp work.
2966 2003-11-13 Jackson Harper <jackson@ximian.com>
2968 * PageCompiler.cs: Call InitOutputCache when the OutputCache
2971 2003-11-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2973 * AspGenerator.cs: use fileEncoding from configuration files.
2975 * PageCompiler.cs: add assign statements for ContentType,
2976 ResponseEncoding and CodePage if supplied.
2978 2003-10-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2980 * TemplateControlCompiler.cs: fix bug #42994. Now we don't generate
2981 a return statement for user controls with 'void' return type.
2983 2003-10-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2985 * AspParser.cs: fixed bug #49627.
2987 2003-10-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2989 * BaseCompiler.cs: now gets the CodeCompiler from configuration files.
2991 2003-10-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2993 * Directive.cs: new attribute for @Page directive in 1.1.
2995 2003-10-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2998 * TagAttributes.cs: allow duplicated runat=server attributes and display
2999 error page when duplicated attributes and runat is specified.
3001 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3003 * AspTokenizer.cs: moved token numbers above unicode.
3005 2003-09-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3007 * AspGenerator.cs: don't process code render tags inside scripts. Check
3008 the language of the script and treat javascript as verbatim input.
3011 2003-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3013 * TemplateControlCompiler.cs: fixed bug #48212.
3015 2003-09-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3017 * WebServiceCompiler.cs: remove the temporary files here too.
3019 2003-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3021 * AspGenerator.cs: fixed bug #46429.
3023 2003-08-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3025 * Directive.cs: support @WebHandler.
3027 2003-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3029 * TemplateControlCompiler.cs: support string []. Fixes bug #46415.
3031 2003-07-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3033 * BaseCompiler.cs: first look for cached items, then generate the tree.
3034 This should speed things up.
3036 * CachingCompiler.cs: when compiling web services, use the full path of
3037 the .asmx file as key when caching.
3039 * WebServiceCompiler.cs: first look for cached items, then generate
3042 2003-07-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3044 * AspParser.cs: more useful error information,
3047 * CachingCompiler.cs: honor the debug="true" option.
3049 * TemplateControlCompiler.cs: small fixes for templates.
3051 2003-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3053 * BaseCompiler.cs: made Compiler property virtual.
3055 * CachingCompiler.cs: added support for compiling web services.
3057 * WebServiceCompiler.cs: implemented.
3059 2003-05-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3061 * CachingCompiler.cs: fixed bug #43477.
3063 2003-05-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3066 * AspTokenizer.cs: fixed bugs #43206 and #43371.
3068 2003-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3070 * TemplateControlCompiler.cs: duh! Generate SupportAutoEvents instead
3071 of AutoEventWireup (which is internal). Thanks to Stuart Ballard for
3074 2003-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3076 * CompilationException.cs: don't add duplicated lines in the case that
3077 mcs reports several errors for the same one.
3079 2003-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3081 * AspGenerator.cs: fully support including files, ie., treat them just
3082 as C treats #includes.
3084 2003-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3088 * TagType.cs: Added support for server side includes.
3090 2003-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3092 * CSCompiler.cs: actually add the list of referenced assemblies to the
3093 compiler options. Throw a CompilationException if there's an error.
3095 * CachingCompiler.cs: added a method to compile directly from a source
3098 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3100 * AspGenerator.cs: copy the location before setting the value for the
3103 * BaseCompiler.cs: changed parameters for CompilationException.
3105 * CompilationException.cs: it takes now line numbers and error
3106 descriptions from the CompilerErrorCollection.
3108 * Location.cs: used when a copy of an ILocation is needed.
3110 * ParseException.cs: implemented new methods to provide line numbers
3113 * TemplateControlCompiler.cs: throw a ParseException where appropiate.
3115 2003-05-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3117 * AspGenerator.cs: also support data bind syntax inside tags not
3118 processed as controls. Added debugging method.
3120 * TemplateControlCompiler.cs: reset the number of data binding handlers
3121 in the proper place. Small fix when getting the container type.
3123 2003-04-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3125 * TemplateControlCompiler.cs: correctly set the TemplateSourceDirectory
3128 2003-04-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3130 * AspGenerator.cs: handle code render syntax in tag attributes.
3132 * AspParser.cs: the constructor now takes a TextReader.
3134 * TemplateControlCompiler.cs: removed comment.
3136 2003-04-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3138 * TemplateControlCompiler.cs: added support for data bound properties.
3140 2003-04-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3142 * AspComponentFoundry.cs: simplified it a lot by using Type and Assembly
3143 instead of their names.
3145 * AspElements.cs: removed. No longer needed.
3147 * AspGenerator.cs: this file is now in charge of interfacing between
3148 the parser and the compiler. It manages the creation of the
3149 ControlBuilder tree and the compilation of the CodeDOM tree.
3151 * AspParser.cs: tag handling is simpler now. Instead of a whole bunch
3152 of different Types, tags are just and id and a set of attributes.
3153 Implement ILocation interface.
3155 * AspTokenizer.cs: added a few methods to help the parser implementing
3158 * BaseCompiler.cs: handles the portions of the CodeDOM tree that are
3159 common to appliaction, page and user control, including the actual
3160 compilation and error handling.
3162 * CSCompiler.cs: compiles C# files using CodeDOM interfaces.
3164 * CachingCompiler.cs: simplified to use the new interfaces.
3166 * CompilationException.cs: it's now using CompilationResult to report
3169 * CompilationResult.cs: Removed file.
3171 * Directive.cs: to check for the validity of a directive.
3173 * GlobalAsaxCompiler.cs: simplified a lot, as most of the work is done
3176 * ILocation.cs: interface used to now the exact place where a parse
3179 * PageCompiler.cs: generates a couple of methods that are only used in
3182 * ParseException.cs: use the ILocation interface.
3184 * TagAttributes.cs: handles the attributes of the tags parsed.
3186 * TagType.cs: an enum for the different kinds of tags.
3188 * TemplateControlCompiler.cs: this is the one that does most of the
3189 conversion from teh ControlBuilder tree into a CodeDOM tree.
3191 * UserControlCompiler.cs: simplified as most of the work is done in
3194 * WebServiceCompiler.cs: dummy.
3196 2003-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3198 * AspComponentFoundry.cs: added GetComponentType method.
3200 2003-03-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3202 * AspTokenizer.cs: allow quotes inside server tags that are part of
3205 * CachingCompiler.cs: no more 'FileNotFound' exceptions when the
3208 2003-03-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3210 * AspGenerator.cs: generate correct appbase path. It was working with
3211 mcs but not with csc.
3213 * BaseCompiler.cs: quote arguments and removed GetRandomFileName.
3215 * CachingCompiler.cs: quote source file.
3217 2003-03-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3219 * AspGenerator.cs: now the Inherits attribute works as expected for
3222 2003-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3224 * CompilationException.cs:
3225 * ParseException.cs: display the correct line number in error messages.
3227 * AspElements.cs: added TargetSchema attribute for control. It's
3230 2003-03-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3232 * BaseCompiler.cs: fixed the hack to work under windows.
3233 * CachingCompiler.cs: under windows, try 'mcs.bat' and then 'mcs'.
3235 2003-03-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3237 * BaseCompiler.cs: hacks to work-around our buggy System.Uri.
3239 2003-03-17 George Kodinov <gkodinov@openlinksw.co.uk>
3241 * BaseCompiler.cs: Removed a FIXME: and added a correct calculation of
3242 app's private bin path
3244 2003-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3248 * CachingCompiler.cs:
3249 * CompilationResult.cs:
3250 * GlobalAsaxCompiler.cs:
3252 * UserControlCompiler.cs: recompile the page if dependencies change.
3254 2003-02-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3256 * AspGenerator.cs: corrected typo and wrong fix.
3258 2003-02-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3260 * AspGenerator.cs: fixed code generation for Table/TableRow/TableCell
3261 when used explicitly.
3263 2003-02-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3265 * AspElements.cs: get the property Type for controls that use
3266 ParseChildren with a property name.
3268 * AspGenerator.cs: generate correct signature for the method that
3269 adds controls to the default property in ParseChildren.
3271 2003-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3273 * AspGenerator.cs: rethrow exceptions that may come from parsing or
3274 compilation if a user control.
3276 2003-02-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3278 * AspGenerator.cs: throw ParseException on parse
3281 * AspParser.cs: added Line and Column props.
3283 * CompilationException.cs: derives now from HtmlizedException.
3285 * CompilationResult.cs: added fileName field. Fixed set_ExitCode.
3287 * GlobalAsaxCompiler.cs:
3289 * UserControlCompiler.cs: pass the file name in the CompilationResult.
3291 * ParseException.cs: new exception.
3294 2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3296 * AspGenerator.cs: remove "file://" from the private bin path. Fixes
3299 2003-02-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3301 * AspParser.cs: the parser fires events when it parses an element.
3303 * GlobalAsaxCompiler.cs:
3305 * UserControlCompiler.cs:
3306 * AspElements.cs: modified to use the new parser interface.
3308 * AspGenerator.cs: modified to use the new parser. Merge multiple text
3309 strings into one single LiteralControl.
3311 * AspTokenizer.cs: added Line and Column properties.
3313 2003-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3315 * AspParser.cs: fixed bug #36929.
3317 2003-01-21 Tim Haynes <thaynes@openlinksw.com>
3321 * CachingCompiler.cs: changes to work around spaces and
3322 directory-separators in the local filesystem.
3324 2003-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3326 * AspGenerator.cs: make the generated file compile with csc after last
3329 2003-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3331 * AspGenerator.cs: removed unused variable. Added support for
3332 properties/fields of type string [].
3334 2003-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3336 * AspGenerator.cs: modified loading of the parent type now that
3337 Type.GetType is fixed.
3339 2003-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3341 * AspGenerator.cs: cast to Control if the container does not implement
3344 2003-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3346 * AspGenerator.cs: fixed a couple of thinkos related to IsSubclassOf.
3348 2003-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3350 * AspElements.cs: attributes without value lacked a space afterwards.
3352 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3354 * AspGenerator.cs: functions for columns don't return anything. Fixed
3357 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3359 * AspGenerator.cs: add data bound controls to code render function.
3361 2003-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3363 * AspComponentFoundry.cs: reworked to allow same prefix for multiple
3364 controls. You can register 1 assembly plus any number of user controls
3365 under the same prefix.
3367 * AspGenerator.cs: don't add duplicate 'using' for the same namespace.
3368 Hack to allow @Register access to assemblies in other places than bin
3371 2003-01-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3373 * AspElements.cs: added 'codebehind' attribute for page, control and
3374 application. It's ignored by MS, but allowed. Fixed typo.
3376 2003-01-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3378 * AspGenerator.cs: fixed EnableSesssionState handling.
3380 2003-01-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3382 * AspGenerator.cs: don't generate instance fields for pages/controls
3383 when the base class specified in the Inherits attribute already has
3384 them. Closes bug #36262.
3386 2002-12-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3388 * AspGenerator.cs: generate code like 'control.XXX = value' also for
3389 public fields (properties were being handled in that way too).
3391 2002-12-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3393 * AspGenerator.cs: now it uses the current HttpContext when creating
3394 user controls. TemplateSourceDirectory is no longer a dummy value.
3396 * GlobalAsaxCompiler.cs:
3398 * UserControlCompiler.cs: set the context which will be used to locate
3401 2002-12-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3403 * AspGenerator.cs: added support for AutoEventWireup attribute in
3406 * CompilationResult.cs:
3407 * GlobalAsaxCompiler.cs:
3409 * UserControlCompiler.cs: store the options.
3411 2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3413 * AspElements.cs: new method Tag.GetElements
3414 used to parse the inner contents of a tag looking for data binding or
3417 New property HtmlControlTag.ParseChildren allows
3418 differentiation of a couple of HtmlControls that has children as
3419 properties (namely HtmlTable and HtmlTableRow).
3421 * AspGenerator.cs: fixed container semantics to
3422 match BindingContainer one. Implemented Inherits attribute for page and
3425 Support HtmlControls that has ChildrenAsProperties.
3427 Generate code for data binding functions that matches the semantic of
3430 Handle data bound and code render attribute values.
3432 Set proper value return for TemplateSourceDirectory. Should be relative
3435 * BaseCompiler.cs: moved CompilerOptions and
3436 References handling here.
3438 * CachingCompiler.cs: copy result of compilation.
3440 * CompilationException.cs: simple ToString () implementation.
3442 * CompilationResult.cs: implemented CopyFrom and ToString.
3444 * GlobalAsaxCompiler.cs:
3446 * UserControlCompiler.cs: removed CompilerOptions as it's now handled
3447 in the base class. Get all the types in the generated assembly and
3448 look for one that derives from the correct Type.
3450 2002-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3452 * AspElements.cs: added @Application directive.
3454 * AspGenerator.cs: make it work also with application files. We
3455 currently generate an extra private function.
3457 2002-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3459 * GlobalAsaxCompiler.cs: compiler for global.asax file. If the file
3460 exists, it will be compiled into an HttpApplication derived class
3461 (directly or through a user-provided class).
3463 2002-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3465 * AspGenerator.cs: fixed target file name and generated class name.
3466 * BaseCompiler.cs: reference assemblies in PrivateBinPath.
3468 2002-11-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3470 * AspGenerator.cs: reworked user control
3471 compilation. Provide the options as a Hashtable for use in compilation.
3472 Create the user controls in the private bin path of the domain.
3474 * BaseCompiler.cs: base class for the various compiler types.
3476 * CachingCompiler.cs: actually executes mcs and do some poor caching
3477 (it will use Cache when finished).
3479 * CompilationException.cs: this exception has enough information to
3480 generate a nice error page.
3481 * CompilationResult.cs: used in caching.
3483 * PageCompiler.cs: now derives from BaseCompiler
3485 * TemplateFactory.cs: no longer needed.
3487 * UserControlCompiler.cs: new class used when compiling user controls.
3488 * WebServiceCompiler.cs: derives from BaseCompiler.
3490 2002-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3492 * AspElements.cs: added ServerComment class.
3493 * AspParser.cs: ignore ServerComments tags. Remove server comments when
3498 * PageCompiler.cs: check if the type is already cached before generating
3500 * TemplateFactory.cs: if csFile parameter is null, only checks if we
3501 already have the page compiled.
3503 2002-11-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3505 * AspGenerator.cs: undo one-liner change.
3507 2002-10-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3509 * AspGenerator.cs: removed a few hacks no longer needed.
3511 2002-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3513 * PageCompiler.cs: tracing.
3514 * TemplateFactory.cs: cache compiled types and tracing.
3515 * WebServiceCompiler.cs: new parameter in GetTypeFromsource,
3517 2002-10-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3519 * AspComponentFoundry.cs: fixed typo.
3520 * TemplateFactory.cs: use csc style options.
3521 * AspGenerator.cs: don't use FileDependencies property of base class.
3523 2002-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3525 * System.Web.Compilation/AspElements.cs:
3526 * System.Web.Compilation/AspGenerator.cs:
3527 * System.Web.Compilation/AspParser.cs:
3528 * System.Web.Compilation/PageCompiler.cs:
3529 * System.Web.Compilation/TemplateFactory.cs: we are now able to compile
3530 pages and use HttpApplication, HttpRuntime and SimpleWorkerRequest.
3532 2002-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3534 * AspElements.cs: added WebService directive.
3535 * WebServiceCompiler.cs: New file.
3537 2002-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3539 * PageCompiler.cs: fixed compilation.
3541 2002-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3543 * PageCompiler.cs: generate C# file using AspGenerator.
3545 2002-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3547 * AspComponentFoundry.cs: LookupFoundry now returns bool.
3548 * AspGenerator.cs: New file.
3550 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3552 * AspComponentFoundry.cs: New file.
3553 * AspElements.cs: renamed Component to Aspcomponent.
3555 2002-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3562 * TemplateFactory.cs: first steps to move xsp into System.Web.