How can we help you today? How can we help you today?
RichardD
AvonWyss wrote: ... they don't seem to understand how much this all really pisses off people. Well, they didn't until recently! [image] http://www.red-gate.com/MessageBoard/viewtopic.php?t=13307 / comments
AvonWyss wrote: ... they don't seem to understand how much this all really pisses off people. Well, they didn't until recently! http://www.red-gate.com/MessageBoard/viewtopic.php?t=13307
0 votes
sssw28 wrote: Red Gate is not violating any laws in wanting to charge for something that was previously "free". And once again, you've missed the point. :roll: I do not have a problem with Red Gate charging for a new version of a product which was previously free. I would not have a problem with Red Gate increasing the cost of an existing version for new users. (I can't say I'd be happy about it, and I'd imagine there would be outrage from some corners of the community, but it would be a perfectly understandable commercial decision.) I do have a problem with Red Gate, or any other company, trying to impose a new price on existing users of the current version. sssw28 wrote: This software is provided on a 30-day trial basis at no charge. If that was how the software was originally provided, then there wouldn't be a problem. The simple fact is that, until v7, Reflector was provided as a free tool. Not a demo; not a trial; not a service; simply a free program. Sure, Lutz added an expiry date to ensure he didn't have to support users with out-of-date versions, but the updates were always provided for free. When Red Gate acquired Reflector, many of us expressed concerns that their intention was to commercialize it. These concerns were met with scorn - "Of course we're not intending to use this to force people to pay! Don't be so paranoid!" sssw28 wrote: Free software developers take note. Indeed; if you provide something for free, and then want to charge for it, don't try to take the free copies away from existing users just to increase your profit margin! / comments
sssw28 wrote: Red Gate is not violating any laws in wanting to charge for something that was previously "free". And once again, you've missed the point. :roll: I do not have a problem with Red...
0 votes
sssw28 wrote: We call that belief "entitlement". Call it what you want; you've completely missed my point. :roll: sssw28 wrote: Food and beverages samples are occasionally distributed "free" in supermarkets. If someone gave me a free sample, I would not expect that to entitle me to a lifetime supply of the product for free. However, having eaten the free sample and moved on, there is no way the vendor should be able to change their mind and force me to pay for the sample I've already had. sssw28 wrote: Do you expect to pay last year's price for gas? I expect to pay last year's price for last year's gas. They can put the price up as much as they want for any gas I haven't bought yet, but trying to retroactively apply that price increase to something I've already purchased is not acceptable. This is quite simple; you don't need a degree in economics to understand it. When you provide a product at a particular price, even if that price happens to be "free", you cannot retroactively apply price increases to it. You can charge more for future versions; you can charge more for new copies; but you cannot charge more for the copy you've already provided. If you can't understand that, then I pity your customers! :evil: / comments
sssw28 wrote: We call that belief "entitlement". Call it what you want; you've completely missed my point. :roll: sssw28 wrote: Food and beverages samples are occasionally distributed "free" i...
0 votes
sssw28 wrote: I really do not understand all the hand wringing and anger about charging a very small fee for supported software. I can't claim to speak for everyone, but my own anger was not that RedGate are charging for v7; it was that v6 was going to stop working and expire, forcing everyone to pay up or uninstall Reflector. The recent announcement that existing users of v6 will get a non-expiring copy by the end of the month has gone some way to alleviating my concerns, but it took months of heated arguments and complaints from the "whiners" on this forum to get that concession. sssw28 wrote: Maybe the whiners here don't pay rent or eat or drive a car like most of us. I don't pay rent - I pay a mortgage. When I've finished paying it, I certainly don't expect the mortgage company to tell me that they've changed the rules for their newer mortgages, so now I've got to pay more! I do drive a car, which I've paid for. I don't expect the manufacturer to try to take my car away from me to force me to pay for the latest model just because their profit-margin is looking anaemic! sssw28 wrote: ... they expect to be provided services and products for free. No, but once I've paid the current rate for a product, even if that rate happens to be "free", I don't expect to be told that I've got to pay the new rate as well! Homer: Uh, Milhouse saw the elephant twice and rode him once, right? Mrs. Van Houten: Yes, but we paid you $4. Homer: Well, that was under our old price structure. Under our new price structure, your bill comes to a total of $700. Now, you've already paid me $4, so that's just $696 more that you owe me. Mr. Van Houten: Get off our property. / comments
sssw28 wrote: I really do not understand all the hand wringing and anger about charging a very small fee for supported software. I can't claim to speak for everyone, but my own anger was not t...
0 votes
It's a shame, especially as the .NET 4.0 version works. The reference source might help: http://referencesource.microsoft.com/netframework.aspx The file is installed under the oh-so-obvious path of: RefSrc\Source\Dotnetfx_Win7_3.5.1\3.5.1\DEVDIV\depot\DevDiv\releases\Orcas\NetFXw7\ndp\fx\src\xsp\System\Web\Extensions\ui\CompositeScriptReference.cs\1\CompositeScriptReference.cs The GetUrl method: [SuppressMessage("Microsoft.Design", "CA1055", Justification = "Consistent with other URL properties in ASP.NET.")] protected internal override string GetUrl(ScriptManager scriptManager, bool zip) { bool isDebuggingEnabled = !scriptManager.DeploymentSectionRetail && ((ScriptMode == ScriptMode.Debug) || (((ScriptMode == ScriptMode.Inherit) || (ScriptMode == ScriptMode.Auto)) && (scriptManager.IsDebuggingEnabled))); if (!String.IsNullOrEmpty(Path)) { string path = Path; if (isDebuggingEnabled) { path = GetDebugPath(path); } if (scriptManager.EnableScriptLocalization && (ResourceUICultures != null) && (ResourceUICultures.Length != 0)) { CultureInfo currentCulture = CultureInfo.CurrentUICulture; string cultureName = null; bool found = false; while (!currentCulture.Equals(CultureInfo.InvariantCulture)) { cultureName = currentCulture.ToString(); foreach (string uiCulture in ResourceUICultures) { if (String.Equals(cultureName, uiCulture.Trim(), StringComparison.OrdinalIgnoreCase)) { found = true; break; } } if (found) break; currentCulture = currentCulture.Parent; } if (found) { path = (path.Substring(0, path.Length - 2) + cultureName + ".js"); } } // ResolveClientUrl is appropriate here because the path is consumed by the page it was declared within return ClientUrlResolver.ResolveClientUrl(path); } List<Pair<Assembly, List<Pair<string, CultureInfo>>>> resources = new List<Pair<Assembly, List<Pair<string, CultureInfo>>>>(); Pair<Assembly, List<Pair<string, CultureInfo>>> resourceList = null; foreach (ScriptReference reference in Scripts) { bool hasPath = !String.IsNullOrEmpty(reference.Path); bool isPathBased = hasPath || (!String.IsNullOrEmpty(scriptManager.ScriptPath) && !reference.IgnoreScriptPath); Assembly resourceAssembly = hasPath ? null : (reference.GetAssembly() ?? AssemblyCache.SystemWebExtensions); Assembly cacheAssembly = isPathBased ? null : (reference.GetAssembly() ?? AssemblyCache.SystemWebExtensions); CultureInfo culture = reference.DetermineCulture(); if ((resourceList == null) || (resourceList.First != cacheAssembly)) { resourceList = new Pair<Assembly, List<Pair<string, CultureInfo>>>( cacheAssembly, new List<Pair<string, CultureInfo>>()); resources.Add(resourceList); } string resourceName = null; ScriptMode effectiveScriptModeForReference = reference.EffectiveScriptMode; bool isDebuggingEnabledForReference = (effectiveScriptModeForReference == ScriptMode.Inherit) ? isDebuggingEnabled : (effectiveScriptModeForReference == ScriptMode.Debug); if (isPathBased) { if (hasPath) { resourceName = reference.GetPath(reference.Path, isDebuggingEnabledForReference); if (scriptManager.EnableScriptLocalization && !culture.Equals(CultureInfo.InvariantCulture)) { resourceName = (resourceName.Substring(0, resourceName.Length - 2) + culture.ToString() + ".js"); } } else { string name = reference.GetResourceName(reference.Name, resourceAssembly, isDebuggingEnabledForReference); resourceName = ScriptReference.GetScriptPath( name, resourceAssembly, culture, scriptManager.ScriptPath); } // ResolveClientUrl not appropriate here because the handler that will serve the response is not // in the same directory as the page that is generating the url. Instead, an absolute url is needed // as with ResolveUrl(). However, ResolveUrl() would prepend the entire application root name. For // example, ~/foo.js would be /TheApplicationRoot/foo.js. If there are many path based scripts the // app root would be repeated many times, which for deep apps or long named apps could cause the url // to reach the maximum 1024 characters very quickly. So, the path is combined with the control's // AppRelativeTemplateSourceDirectory manually, so that ~/foo.js remains ~/foo.js, and foo/bar.js // becomes ~/templatesource/foo/bar.js. Absolute paths can remain as is. The ScriptResourceHandler will // resolve the ~/ with the app root using VirtualPathUtility.ToAbsolute(). if (UrlPath.IsRelativeUrl(resourceName) && !UrlPath.IsAppRelativePath(resourceName)) { resourceName = UrlPath.Combine(ClientUrlResolver.AppRelativeTemplateSourceDirectory, resourceName); } } else { resourceName = reference.GetResourceName(reference.Name, resourceAssembly, isDebuggingEnabledForReference); } resourceList.Second.Add(new Pair<string, CultureInfo>(resourceName, culture)); } return ScriptResourceHandler.GetScriptResourceUrl(resources, zip, NotifyScriptLoaded); } / comments
It's a shame, especially as the .NET 4.0 version works. The reference source might help:http://referencesource.microsoft.com/netframework.aspx The file is installed under the oh-so-obvious path of:...
0 votes
Chris128 wrote: ... that code remains the property of the developer ... The code remains the property of the developer; the copy of the executable does not. Would you argue that you don't "own" your copy of Windows, Office, SQL Server, etc.? Chris128 wrote: ... if they want to change that license ... ... then by any reasonable legal standard, they would need your consent to do so. You can't simply decide to change a legal document in your favour after it's been applied! Chris128 wrote: ... saying you have to pay to continue to use it is fair enough ... It would be "fair enough", if the product had been provided as a service or a time-limited demo. Since it was provided as a free tool, changing the terms after you've install it is not acceptable. Chris128 wrote: ... why should they keep getting it for free? Again, if it had been provided a service, I would agree. However, it was not. Look at it this way: If Microsoft announced that the next version of SQL Express would cost $100, I don't think anyone would argue that it was too much. But if they also announced that every existing instance of any previous version would stop working unless you paid up, would you think that was "reasonable"?! I keep coming back to the Simpsons, because it accurately depicts what Red Gate were trying to do: Homer: Uh, Milhouse saw the elephant twice and rode him once, right? Mrs. Van Houten: Yes, but we paid you $4. Homer: Well, that was under our old price structure. Under our new price structure, your bill comes to a total of $700. Now, you've already paid me $4, so that's just $696 more that you owe me. Mr. Van Houten: Get off our property. / comments
Chris128 wrote: ... that code remains the property of the developer ... The code remains the property of the developer; the copy of the executable does not. Would you argue that you don't "own"...
0 votes