13. August 2013 12:19
by Daniel Harris
0 Comments
This is something I’ve been thinking about ever since I saw there would be a new Visual Studio release in 2013… Is there a chance we could see a subscription model become available later this year?
With the next release being just a year after the previous release, I’ve seen some developers complaining that they are being priced out of using the latest version.
With what looks like the introduction of a yearly release cycle, how are developers expected to afford to keep using the latest version?
In my opinion, a basic subscription model could be just the answer.
What about MSDN Subscriptions?
One existing way you may say, is the purchase of an MSDN Subscription. However, in my opinion the pricing for this is still going to be too high for many independent developers, and smaller companies.
The lowest priced option is Visual Studio Professional, at over £1000. The renewal cost to keep your subscription is currently around £675 per year.
MSDN includes many other benefits and access to other software, but for many developers access to all these extras just isn’t needed, and isn’t always affordable.
There are always the free editions available of course, which offer much of what a hobbyist or independent developer would need at no cost, but this could be great for startups and other small companies that want to keep up to date with the Microsoft stack.
The cost of 5 MSDN subscriptions or just 5 Visual Studio Pro licenses can soon stack up when you are just trying to get started.
Why I think it is likely we will see a subscription model this year
As well as my reasoning above for why an MSDN Subscription isn’t for everybody, there are a number of other reasons I feel we will see this happen:
A yearly release follows the trend at Microsoft for trying to be more agile - With more frequent software releases, there needs to be an affordable way for people to upgrade
We have seen the introduction of Subscriptions for Office with Office 365 over the last few years, in my experience this model is extremely convenient and very affordable
Team Foundation Service, the cloud based TFS is available under this model, as an alternative to purchasing up front
We are seeing a general shift towards subscription models with other companies such as Adobe taking their software towards a subscription only model via Creative Cloud
I am not lucky enough to have any sources, so this all just my opinion and a prediction of my own. I’ve yet to see any rumours or discussion of a Subscription model, but to me it would just be a common sense move from Microsoft.
I was fairly surprised to see a release so soon after 2012, especially with all of the fantastic changes we have had delivered via NuGet and the quarterly updates throughout the past year.
What do you think?
As a developer do you think you would be interested in a subscription model along the lines of Office 365? (Ideally in my opinion at much lower cost than an MSDN subscription, but without all the extras)
What sort of pricing would you like to see?
Have I missed some news somewhere that this has already been announced and I’m just way late to the party with this prediction? Let me know in the comments.
Sometimes you need to host an application within an existing website/app in IIS.
The way many of us are all familiar with is right clicking on a folder in the IIS site structure, and choosing 'Convert to Application'.
Some expect that this treats the application as a separate entity to it's parent site that it is hosted in.
However, any nested applications will still attempt to inherit the parent web.config. This can cause issues.
One specific example that affected me was a line that defined the Theme in the parent site, that wasn't present in the child Application.
To solve this, simply wrap any sections, or if you prefer the entire web.config (inside the <configuration> node) and the child will no longer inherit settings in the parent web config.
<location path="." inheritInChildApplications="false">
This can be particularly useful when apps use common names for entries, such as 'ConnectionString'
Personally I try to avoid this and use a more specific name
Here is an example of my parent web.config with the new tag to prevent inheritance.
<configuration>
<location path="." inheritInChildApplications="false">
<system.web>
<pages theme="ParentSiteTheme"/>
</system.web>
</location>
<connectionStrings>
<!--Shared Information to be inherited-->
</connectionStrings>
</configuration>
Recently I had to move a clients website from their old developers server in the USA to one based here in the UK.
Part of that migration involved getting an SSL certificate setup and working on the new server.
I was provided with the certificate code in the following text format:
—–BEGIN CERTIFICATE—–
xxxxxxx
—–END CERTIFICATE—–
Text in this format can easily be saved from notepad with a .cer or .crt extension, and it will install on a Windows machine, seemingly without any problems…
However, if you go to IIS and try to assign this certificate it will not be listed. This is because you have not got the second piece, the RSA Private key.
I had this in a second text file in the format:
—–BEGIN RSA PRIVATE KEY—–
xxxxxxx
—–END RSA PRIVATE KEY—–
This is usually generated when you create a CSR request, and send it to the issuing authority, and is stored on the machine the request was generated on.
Since I didn’t generate a request from the server we were migrating from (I simply had two blocks of text) the matching private key was not generated and present on the server. No matter how many formats I saved the RSA key text as, it would not import the private key.
Using OpenSSL to generate a .p12 file
The solution was to generate a p.12 file, using both the Private RSA key (Text file saved as a .key) and the Certificate (Text file saved as .cer).
I downloaded a windows version of OpenSSL found here: Win32 OpenSSL v0.9.8r Light
Once installed (I put it to C:\OpenSSL) you need to run the following command on your two files:
openssl pkcs12 -export -in certificate.crt -inkey rsa.key -out fullcertificate.p12
The command prompt should ask you type in a password, choose something secure but remember it as you will need it when importing to your server.
Import the .p12 file into IIS7
Once you have generated the .p12 file, go into IIS7 management and select the server in the tree view on the left, and then follow these steps:
Double click on “Server Certificates”
On the right in the actions pane click “Import”
Click on the “..” button to browse and at the bottom right of the dialog change the dropdown to “*.*”
Browse to the “fullcertificate.p12″ file, enter the password for the certificate that you entered into OpenSSL
It’s up to you if you want to enable the certificate to be exported later
Click OK and the certificate should import successfully
You will notice the certificate doesn’t have a name, but you can right click it, choose properties and enter something into the “friendly name” field.
You can now assign this certificate to the site in IIS as you usually would.
If you try this and have any problems, or if this post helps you solve your issue then please leave a comment.
14. April 2012 22:17
by Daniel Harris
0 Comments
I had a frustrating evening this evening. A site I had designed and built looks good on the desktop, but when viewed on mobile devices, some images were overlapping the text.
In my mind all I wanted to do was force the iPhone browser to show the site at it’s full width, without attempting scale anything.
This was frustrating because the site was built to a fixed width, all I wanted to force on the iPhone was for it to show the site at it’s correct full width, with the user having to pan around the view text, and scroll horizontally.
This particular site doesn’t have a specific mobile version, and there wasn’t the budget in the project to create one at this time.
I mistakenly thought the browser was somehow ignoring the width I had set, but what it was actually doing was resizing the text.
The simple solution was to prevent this from happening with the following CSS:
-webkit-text-size-adjust: none;
This solved the problem immediately.
I had also been playing around with the viewport meta tag, and in the end did use this to send an initial-scale value to try and give as optimum as possible initial zoom level for mobile device users.
After this experience I will in future pay closer to attention to testing in a mobile browser when building websites for clients. And if the design is particularly unsuitable for mobile devices I will offer to the client to quote for a mobile optimized version as an extra where necessary.
The simple CSS above will surely save me plenty of hair pulling down the line.