Commit Graph

2048 Commits

Author SHA1 Message Date
Doug Bunting 7a1ac034f9 Special-case use of `razorPage.Model` property in `ExpressionMetadataProvider`
- #3978
- better-aligns `ExpressionMetadataProvider` with `ExpressionHelper`

nit: mock less in `RazorPageCreateModelExpressionTest`
2016-04-15 17:15:33 -07:00
mnltejaswini a565f9ff58 [Perf] Reduce DefaultTagHelperContent allocations in LinkTagHelper and ScriptTagHelper
Fixes #4468
2016-04-15 13:29:49 -07:00
mnltejaswini fa34f61d46 [Perf] Avoid Service Provider lookups when activating common Singleton properties of a Razor Page
Fixes #4244
2016-04-14 16:52:25 -07:00
BrennanConroy 588abbc588 Merge branch 'release' into dev 2016-04-14 15:55:14 -07:00
BrennanConroy 010e8a4e37 Move dependency to netstandard only 2016-04-14 15:54:59 -07:00
BrennanConroy 4f8c1d49d0 Merge branch 'release' into dev 2016-04-14 13:53:24 -07:00
BrennanConroy b35814f035 Add serialization.primitives for Newtonsoft.Json 2016-04-14 13:53:10 -07:00
Ryan Nowak a73db1a9bd Fixes #4471 - Don't call Enum.ToString() 2016-04-14 10:15:55 -07:00
Doug Bunting ee2cfa1963 Merge remote-tracking branch 'origin/release' into dev 2016-04-13 16:04:14 -07:00
Doug Bunting eda647e270 Complete the doc comments for filters
- #3851
- add lots of words
- correct that vs. which confusion
2016-04-13 16:01:30 -07:00
Ryan Nowak cffc381a69 Update xproj output path 2016-04-13 14:03:44 -07:00
Eilon Lipton 0cf9a4b7f2 Merge branch 'release' into dev 2016-04-13 12:10:53 -07:00
Eilon Lipton 4f24339740 Fix package metadata 2016-04-13 12:07:04 -07:00
Ryan Nowak 84caf6968d Merge branch 'release' into dev 2016-04-11 15:50:26 -07:00
Ryan Nowak 3ec60a0181 Fix #4447 - Teach MVC to understand defaults
The wireup for defaults in attribute routes was missing
2016-04-11 14:38:29 -07:00
Doug Bunting 82fd17d050 Merge branch 'release' into dev 2016-04-08 16:06:59 -07:00
Doug Bunting a0c8834c70 Preserve existing metadata in `ViewDataDictionary` where possible
- #4116
- generalize rules for `ModelMetadata` creation; minimize metadata changes when Model is updated
 - down to a single special case in VDD for `Nullable<T>`
 - note existing functional tests did not need to change
- remove `ViewDataDictionary(ViewDataDictionary, object)` constructor; use `new VDD<object>(source, model)`
- allow all `Model` assignments in a view component
 - copy-constructed VDD in `ViewComponentContext` previously preserved the source's declared type

nits:
- do not call `virtual SetModel()` method from constructor; now mostly redundant
 - logic in copy constructor and `SetModel()` is consistent but different enough to keep code separate
- add some missing doc comments
- fix doc comment property versus type confusion; never need to specify `ViewDataDictionary.` prefix
- fix a few `TemplateBuilder` comments and remove unnecessary `model: null` argument to VDD constructor
2016-04-08 14:44:36 -07:00
Ryan Nowak 7b50ea39da Merge branch 'release' into dev 2016-04-08 12:26:52 -07:00
Ryan Nowak a55544681d Fix for #3659 - handle IHtmlContent in localization
This change corrects handling of IHtmlContent instances in
LocalizedHtmlString by making using of FormattableHtmlString.
2016-04-08 11:20:49 -07:00
mnltejaswini f4e35f5ba0 [Perf] Remove the validations in ControllerActivator and ViewComponentActivator which are redundant. These
validations are already done when selecting a controller and view component
Fixes #4367
2016-04-08 10:07:33 -07:00
Pranav K 2bf79a874d Removing imports from src projects 2016-04-08 06:49:31 -07:00
Pranav K 1d4363305c Merge branch 'release' into dev 2016-04-08 06:49:31 -07:00
Ryan Nowak d4c7dc3a83 Make HashSets in TempData lazy
TempData is frequently created but not modified, this reduces the cost of
that without much complexity.
2016-04-07 13:09:56 -07:00
Pranav K cf460e9a63 Merge branch 'release' into dev 2016-04-06 19:04:58 -07:00
Pranav K 67f54e82f9 Fix versioning 2016-04-06 18:15:14 -07:00
Ryan Nowak 3b3bfb5a69 Remove using Task.FromResult where possible
Believe it or not, this one in ActionResult is showing in TechEmpower. I
did a pass on all of the product code since the cache task actually
improves the readability of the code 😎
2016-04-06 16:06:45 -07:00
N. Taylor Mullen 3ebb14ee4b Update Resource lookup keys for VSRC1 packages. 2016-04-06 11:43:09 -07:00
Sébastien Ros efb8ef33e6 Fixing race in distributed cache tag helper
Fixes #4407
2016-04-06 09:42:24 -07:00
Pranav K c66c408c15 DefaultAssemblyPartDiscoveryProvider.IsCandidateLibrary should not look at types in Mvc assemblies
Fixes #4363
2016-04-06 08:41:12 -07:00
David Fowler 4b348699c8 Fixed dependencies
Fix dependency on System.Runtime.Serialization.Xml
2016-04-05 23:28:53 -07:00
N. Taylor Mullen ee80f5f84c React to aspnet/Razor#621. 2016-04-05 16:08:01 -07:00
Pranav K 7cb1dca467 JsonInputFormatter fails to use custom SerializerSettings
Fixes #4270
2016-04-05 10:19:49 -07:00
N. Taylor Mullen a140440196 Add `AssemblyCompany`, `AssemblyCopyright` and `AssemblyProduct` attributes to the assembly. 2016-04-04 16:25:47 -07:00
N. Taylor Mullen 687fd72efd Add Visual Studio specific RC1 binaries.
- This is needed for Visual Studio RC1 backwards compatibility.
2016-04-04 15:21:19 -07:00
Pranav K 701869fd53 Remove DefaultAssemblyPartDiscoveryProvider.GetAssemblyName
Fixes #4366
2016-04-03 10:37:10 -07:00
Pranav K 330e98d1fc Revert "Revert "Updating to the newest Roslyn packages""
This reverts commit 87e89befc8.
2016-04-03 09:07:31 -07:00
Pranav K b4310ac8a8 Modify RoslynCompilationService to generate portable pdbs
Fixes #4330
2016-04-03 08:55:11 -07:00
Kiran Challa 4cd3012886 Fix mixed route for action error message 2016-04-03 06:55:11 -07:00
N. Taylor Mullen 56bbb215ec React to aspnet/Razor#721. 2016-04-03 00:00:19 -07:00
jacalvar 574ecbb3eb [Fixes #4087] Add support for AddTagHelpersAsServices()
* Added TagHelperFeature and TagHelperFeatureProvider to perform tag helper discovery.
* Changed tag helper discovery to use application parts when using tag helpers as services.
* Added FeatureTagHelperTypeResolver to resolve tag helper type definitions from the list of application parts.
* Added AddTagHelpersAsServices extension method on IMvcBuilder and IMvcCoreBuilder that
  performs tag helper discovery through the ApplicationPartManager and registers those tag helpers as
  services in the service collection. Assemblies should be added to the ApplicationPartManager
  in order to discover tag helpers in them in them. The @addTagHelper directive is still required on
  Razor pages to indicate what tag helpers to use.
2016-04-02 10:32:48 -07:00
Doug Bunting 384fd1f218 Quick fix: Address a couple of nits in / around `ViewDataDictionary`
- remove duplicate `null` checks in `ViewDataDictionary` constructors
- correct a couple of code comments
- use a `public` constructor for `ViewDataDictionary` in `ViewExecutor`
2016-04-01 15:31:47 -07:00
Sebastien Ros 341430eae5 [Fixes #4246] Introducing CacheTagKey
Prevent string allocations in CacheTagHelper
Fix hash collision by checking the serialized key with the actual content for DistributedCacheTagHelper
2016-04-01 15:06:29 -07:00
BrennanConroy f22e234dab React to logging changes 2016-04-01 12:00:33 -07:00
ryanbrandenburg 906ac728c7 Null-check PagedBufferedStringWriter 2016-04-01 11:50:46 -07:00
jacalvar f638c051fa Remove IAssemblyProvider and update DNX to work with application parts.
* Remove IAssemblyProvider.
* Remove DefaultAssemblyProvider in favor of DefaultAssemblyPartDiscoveryProvider.
* Update AddMvcDnx to add the list of DNX discovered assemblies to the list of application parts.
2016-04-01 11:01:09 -07:00
jacalvar 5246125cb7 [Fixes #4087] Add AddViewComponentsAsServices() and ServiceBasedViewComponentActivator
* Added ViewComponentFeture and ViewComponentFeatureProvider to perform view component discovery.
* Changed view component discovery to use application parts.
* Changed ViewComponentDescriptorProvider to make use of Application parts.
* Added AddViewComponentsAsServices method on IMvcBuilder that performs view component
  discovery through the ApplicationPartManager and registers those view components as
  services in the service collection. Assemblies should be added to the ApplicationPartManager
  in order to discover view components in them in them.
2016-04-01 10:55:04 -07:00
Pranav K 87e89befc8 Revert "Updating to the newest Roslyn packages"
This reverts commit 50af106b6a.
2016-04-01 10:44:33 -07:00
jacalvar 0d0aad41f5 [Fixes #4014] Add overload to AddControllerAsServices that uses the default controller discovery logic.
* Added ControllerFeature and ControllerFeatureProvider to perform controller discovery.
* Changed controller discovery to use application parts.
* Changed ControllerActionDescriptorProvider to make use of Application parts.
* Simplified AddControllerAsServices to not accept any parameter and perform
  controller discovery through the ApplicationPartManager in the IMvcBuilder
  and IMvcCoreBuilder. Assemblies should be added to the ApplicationPartManager
  in order to discover controllers in them.
2016-04-01 09:29:37 -07:00
Pranav K 50af106b6a Updating to the newest Roslyn packages 2016-04-01 07:11:50 -07:00
Ryan Nowak 144766f2e3 Simplify BindAttribute - rename PredicateProvider
This change renames IPropertyBindingPredicateProvider to
IPropertyFilterProvider. The changes here are mostly renames of
parameters/variables from predicate -> propertyFilter. I did a
find+replace and left the term 'predicate' in some of the docs because it
refers to a predicate in the abstract sense.

This change also simplifies BindAttribute and removes support for type
activation.
2016-03-31 12:34:02 -07:00
jacalvar 1bd66ffda0 [Fixes #4089] Add support for application parts
This commit introduces application parts as a concept on MVC.

An application part is an abstraction that allows you to expose some
feature or corncern in a way that is decoupled from their underlying source.
Examples of this include types in an assembly, emdeded resources, files on
disk etc.

Application parts are configured during startup by adding or removing them from
the application part manager available as part of IMvcBuilder and IMvcCoreBuilder.

The application part manager provides the ability to populate features from the
list of available application parts by using a list of application feature providers.
Application feature providers are responsible for populating a given feature given a
list of application parts.

Examples of application providers can be a ControllerFeatureProvider
that goes through the list of application parts, sees which one of those parts exposes types,
determines which of those types are controller types, and adds them to a ControllerFeature
that holds a list of all the types that will be considered controllers in the application.
2016-03-31 12:14:04 -07:00
mnltejaswini 7fbd407ad5 [Perf] Rewrite ExpressionHelper.GetExpressionText using StringBuilder 2016-03-31 11:26:37 -07:00
jacalvar de9ffb13c7 [Fixes #3732] Simplify controller discovery.
* Introduce ControllerAttribute and use it to mark base classes as controllers.
* Changed rules for controller discovery to:
  * All controller types must be public, concrete, non open generic types.
  * NotController attribute is not applied to any type oif the hierarchy.
  * The type name ends with controller.
  * Controller attribute is applied to the type or to one of its ancestors.
2016-03-31 10:50:26 -07:00
jacalvar 680e9bb2d1 Refactor and cleanup tag helper creation.
* Moved instantiation of tag helpers into DefaultTagHelperActivator.
* Introduced ITagHelperFactory for handling the setup of new tag helper instances.
2016-03-31 10:47:17 -07:00
Ryan Nowak 96e5c7b22e Always clear buffers returned to the memory pool
Just a safety measure in case anything evades our 'flattening'. I don't
have any evidence that we're failing to clear something, but we want this
here as a safeguard.
2016-03-30 16:12:30 -07:00
jacalvar b04bb124b0 [Fixes #4317] UrlResolutionTagHelper doesn't work with TagHelpers that run before and supress output 2016-03-30 15:55:11 -07:00
Kiran Challa e0212752e5 Removing AuthorizationFilterAttribute as we do not want users to easily create their own authorization implementation. They should instead
use authorization policies and requirements(IAuthorizationRequirement) to enforce authorization.
[Fixes #4233] AuthorizationFilterAttribute returns UnauthorizedResult rather than ChallengeResult
2016-03-30 15:34:41 -07:00
Ryan Nowak e1abb47b98 Fix #4238 IFormFile model binder suppresses validation
This change no longer suppresses validation for IFormFile and
IFormFileCollection model values. This will allow the use of [Required] on an
IFormFile model, or a custom attribute for validating IFormFileCollection.

These types already have ValidateChildren = false, so we don't recurse
into them.
2016-03-30 14:09:28 -07:00
Kiran Challa 6e9a6a2db1 Added new attribute ProducesResponseTypeAttribute to enable ApiExplorer to expose response type and StatusCode.
[Fixes #4101] StatusCode Metadata
2016-03-30 11:51:58 -07:00
Ryan Nowak fb81a5e11e Introducing ModelBinderFactory
This change separates model binding into IModelBinderProvider (decides
which binder to use) and IModelBinder (does binding). The
IModelBinderFactory is a new services with coordinates the creation of
model binders.
2016-03-29 15:45:14 -07:00
Pranav K 12d7093278 Revert "Remove DependencyModel dependency"
This reverts commit 4299a4d50b.
2016-03-29 07:29:43 -07:00
Pranav K 529fa67c2b Adding tests for PrefixContainer
Fixes #4045
2016-03-28 14:31:17 -07:00
Kévin Chalet f9d24a8521 Introduce SignInResult/SignOutResult and ControllerBase.SignIn/SignOut 2016-03-28 12:45:42 -07:00
Doug Bunting 749a51e9ae Quick fix: Another typo in the same resource name 2016-03-26 17:36:38 -07:00
Doug Bunting ea9acda0b8 Quick fix: Correct typo in resource name 2016-03-26 17:01:19 -07:00
ryanbrandenburg 5fe284a486 SetContent->SetHtmlContent 2016-03-25 16:48:06 -07:00
ryanbrandenburg e8d0cc1668 SetContent->SetHtmlContent 2016-03-25 12:09:07 -07:00
Doug Bunting 43836aec18 An `ObjectPoolProvider` is always registered
- react to aspnet/Hosting/pull#673
2016-03-25 11:20:15 -07:00
Sebastien Ros 476d2eb81d Reacting to changes in Caching 2016-03-25 10:56:34 -07:00
mnltejaswini 66ff9939c3 Cache Member Access Expression Text to avoid ExpressionHelper.GetExpressionText
Part 1 Fix for  #3921
2016-03-25 09:12:02 -07:00
Pranav K 8c35a4e315 Remove transitive dependency 2016-03-23 13:07:19 -07:00
Pranav K 06289945d0 Reacting to CoreCLR package changes 2016-03-22 14:49:43 -07:00
ryanbrandenburg a78f77afde Add StatusCode helpers to ControllerBase 2016-03-21 15:26:13 -07:00
Ajay Bhargav Baaskaran 8e6b4980e3 [Fixes #4310] Moved AuthorizeFilter and CorsAuthorizationFilter to a public namespace 2016-03-21 11:54:03 -07:00
mnltejaswini fd984563c3 [Perf] Optimize CoerceResultToTaskAsync to remove MethodInfo.Invoke 2016-03-17 16:12:55 -07:00
Pranav K fb07fee465 Reduce grunt work in Mvc 2016-03-17 15:25:33 -07:00
Pranav K f651f18d3a Use a prefix tree as a backing store for ModelStateDictionary 2016-03-17 10:09:36 -07:00
Ryan Nowak fec1268bf3 Remove ModelBinding features from ResourceFilters
Removes all of the ModelBinding configuration support from Resource
Filters. We haven't come up with concrete scenarios around these features,
and don't want to paint ourselves into a corner with extensibility.
2016-03-16 16:33:14 -07:00
Pranav K 4299a4d50b Remove DependencyModel dependency 2016-03-16 16:05:04 -07:00
jacalvar cef81adb21 [Fixes #4237] Include Assembly-Qualified type name in ActionDescriptor.DisplayName 2016-03-16 15:26:25 -07:00
Sebastien Ros ec560bdfe0 Refactoring CacheTagHelper
- Introducing a new distributed cache tag helper
- Sharing base implementation for both cache tag helper
- Preventing concurrent execution of cache tag helpers

Fixes #4147 , Fixes #3867
2016-03-15 15:46:51 -07:00
Pranav K c03aabbff5 RazorCompilationService should throw a meaningful error when a user produces an application without `preserveCompilationContext`
Fixes #4202
2016-03-15 11:19:38 -07:00
Pranav K bf1fc7dab3 Reacting to Hosting changes 2016-03-15 10:50:53 -07:00
ryanbrandenburg 1ae1cdb10b * Remove ServiceProvider 2016-03-15 09:57:17 -07:00
Ajay Bhargav Baaskaran 73f9d26fb1 Updated Json.Net version 2016-03-14 15:05:35 -07:00
mnltejaswini 007c47d065 [Perf] Optimize controller action invoke
Fixes aspnet/MVC#3903
2016-03-14 10:17:55 -07:00
Pranav K 4f709bdbfd Fixing CI build break 2016-03-14 00:38:17 -07:00
Doug Bunting ffe2d2609a Correct HTML and JavaScript encoding of `<link>` and `<script>` attribute values
- #4083
- `<link>` tag helper did not HTML encode `href` values in fallback elements
- `<script>` tag helper did not correctly encode any attribute value in fallback elements
 - e.g. double quotes in literal strings would slip through
- only needed to change one existing unit test (!!); so added a bunch

nit: use `Process()`, not `ProcessAsync()` in `<script>` tag helper tests
2016-03-11 20:07:32 -08:00
ryanbrandenburg f1fa1bd8f4 * Remove JsonViewComponentResult 2016-03-11 11:40:54 -08:00
Brice Lambson 7b70da14bc Don't reference facades in NuSpec
These can be removed entirely after dotnet/cli#164
2016-03-10 14:07:45 -08:00
mnltejaswini 45a72a0e18 [Perf] Optimize creation of VDD
Fixes #3906
2016-03-10 13:39:01 -08:00
jacalvar 2b7a98a4d6 [Fixes #4152] Add HttpOptionsAttribute 2016-03-09 18:14:38 -08:00
jacalvar 6b369ef291 [Fixes #4102] DefaultHtmlGenerator should attempt to properly format values for `<input type="date">` and `<input type="time">` 2016-03-09 17:22:02 -08:00
Pranav K 78e53a22dd Remove extra dependencies that produce build warnings 2016-03-09 12:47:39 -08:00
Pranav K 6d3bd33c64 Revive DefaultRoslynCompilationServiceTest
Partially fixes #4140
2016-03-09 11:50:14 -08:00
Pranav K 501547d630 Remove IMvcRazorHost.MainClassPrefix 2016-03-09 11:50:07 -08:00
N. Taylor Mullen 5612ca845f React to aspnet/Razor#684.
- Modified `UrlResolutionTagHelper` to utilize new CSS selector attributes to restrict when it applies. It now only appies to tags that have their values starting with `~/`.
- `UrlResolutionTagHelper` no longer applies to dynamic content such as `href="@SomethingResultingInTildaSlash"`.
- Updated tests to reflect new behavior.
2016-03-08 12:17:16 -08:00
Pranav K 5a7267a83d Revive DefaultAssemblyProviderTests
Partial fix for https://github.com/aspnet/Mvc/issues/4140
2016-03-07 17:01:58 -08:00
mnltejaswini d537ec06cc [Perf] Using single UrlHelper per HttpContext and one StringBuilder per UrlHelper to reduce allocations 2016-03-07 13:48:54 -08:00
Ajay Bhargav Baaskaran ca164db921 [Fixes #4214] Moved IUrlHelper to Mvc.Abstractions 2016-03-04 16:45:47 -08:00