Justifying Visual Studio upgrade for REST API project - visual-studio

Our group does not primarily develop in c#/.NET, but a few years ago we picked up a couple of licenses for Visual Studio 2008 for a few projects. Since we do not develop full time in .NET, we have not upgraded Visual Studio since then.
There is a project coming where we need to develop a web application that contains a REST API. We have been looking at all of the documentation that deals with creating REST APIs. It appears that while VS 2008 is capable of creating APIs (with WCF), later versions of Visual Studio seem to have much better support for creating REST APIs (ASP.Net Web API).
My questions are:
Would upgrading to Visual Studio 2012 or 2013 make that much of a difference in the development/maintenance of an API, or is Visual Studio 2008 sufficient?
How can we go about justifying an upgrade in our Visual Studio licenses (if needed)?
We don't want to justify an upgrade by just saying "it is newer so it is better". Are there any documents that show how Visual Studio 2012 or 2013 is much better at creating REST APIs than Visual Studio 2008?

Not sure if is enough to justify the money but here are some reasons to adopt Visual Studio 2013:
With Visual Studio 2008 you are restricted to .NET Framework 3.5 or lower. If you upgrade you have access to 4.0, 4.5 and future 5.0
If you use Framework 4.5 you can use new REST API Framework.
You can use latest versions of MVC.
You can use latest Microsoft Entity Framework versions (old version can be used in Framework 3.5.1 but you really want the latest version as it has important performance improvement)
You can benefit from ASP.NET WebAPI.
WCF was a way of improving web services, but not the best one. I would avoid WCF if possible.
What is Web API?
ASP.NET Web API is a framework for building web APIs on top of the .NET Framework. You can use the new MVC4 (ASP.NET MVC 4 Web Application project)
using Web API template.

You can actually get Visual Studio 2013 express for free and build all the web API's you'd like. The paid versions include lots of enterprise features and plugin support.
http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

For me, it will always be a factor of the business side of things. If they see the value, it is an easy sell.
If using Framework 4.5.1 (VS2013 required) will reduce both the server resources
(See:
ASP.NET application suspend
Just-In-Time (JIT) performance of 15%
"The .NET Framework 4.5 and Windows 8 introduce features that can help you achieve a significant performance boost for web-server workloads. This includes a reduction (up to 35%) in both startup time and in the memory footprint of web hosting sites that use ASP.NET."
)
AND bandwidth resources
(SEE:
.NET 4.5 and WCF Request Compression
http://www.topwcftutorials.net/2014/03/whats-new-in-wcf-v45.html under Compress and Cache
),
then one can actually do the maths and see if it makes sense already. Then, the developer and maintenance side (which is quite "neat" in Vs2013 - new intellisense, nice nuget, etc.), is just jam. From a developer point of view, you will also need to consider the cost to upgrade the application between versions, i.e. the cost from 2008 to vNext vs. 2013 to vNext.
Update:
As this is a very similar situation I find myself in, I have been doing some research. Our company standards is VS2012 (RE: Microsoft Dynamics environment).
According to "What's New in the .NET Framework 4.5, 4.5.1, and 4.5.2" at http://msdn.microsoft.com/en-us/library/ms171868(v=vs.110).aspx they suggest the following for your domain specific improvements:
•Ability to support multiple authentication modes on a single WCF endpoint when using the HTTP transport and transport security.
This is always a big seller for business. Please look at the other improvements under WCF at the link above.
I have also found an article at http://www.msmsoftware.com/2013/8/6/the-business-benefits-of-upgrading-net-35-to-45.aspx that is very specifically aimed at your question. They note, as I said, better performance, better security and increase development and support functions.
Your question is unique in that it targets the work side of things (WCF), so the fluff around better support for app stores, better web standards, etc. is somewhat pointless. Hopefully I have given you enough to make the answer somewhat clear.

Related

Compatibility Problems & Limitations when bridging/interfacing Old ASP.NET Webforms/.NET Framework 4 w/ newer .NET Core Web API, MVC & Razor Pages?

At work, we have an Old application developed with the following technologies:
Visual Studio 2010 Ultimate
.NET Framework 4
C# 4.0
ASP.NET WebForms
With our application we are Highly concerned with issues like:
-security,
-links,
-and users sessions.
We have some new software requirements features which in turn means that we have to add to the existing application.
We would like to use newer Microsoft .NET technologies for the new features.
However, we are concerned about compatibility problems. We have Visual Studio 2019, and we would like to develop the new features using Visual Studio 2019.
But, how far can we go before we have compatibility problems, and face other kinds of limitations?
Is it possible to successfully bridge the Old application with newer technologies like:
-.NET Core Web API
-.NET Core MVC
-.NET Core Razor Pages?
Again, we can Not compromise on the following:
-security
-links
-and users sessions
Yes, you can use both .net framework application and .net core application inside single hosted application. Same thing i have done in one of my project. old project was in .net framework 4.5 and we wanted to build new features in .net core with web api.
We did and integrate both application inside a single application which is hosted on IIS server.
In term of security and sessions , .net core provide more control over these things.
Let me know if you need more help of info.

Nemerle for Windows Phone

I just started to study Nemerle. Since this is .NET language, I wonder, is possible to use for Windows Phone development? Does Visual Studio support it well?
Nemerle compiler uses System.Reflection.Emit for assembly manipulations. Then it can create assemblies same CLR version only.
I know only one reciepe for build WP assemblies: ildasm ncc.exe, fix all references to WP framework and ilasm it again.
This may not be possible, since Windows Phone runs a subset of the full .NET Framework which is closer to the .NET Compact Framework.
Looking at this page (translated from Russian) it looks like Compact Framework support is something that is/was planned for Nemerle version 2. However that article was written before Jetbrains acquired the project, so objectives may have changed.
Having said that, much more recently (Feb 2013) one of the Nemerle developers spoke about their difficulties in getting Nemerle to support other frameworks. So perhaps it is on their agenda after all.

How to convince clients to upgrade to WCF or keep two code bases for Remoting and WCF

Here is question for all those who have delivered
WCF solutions to their clients/customers where their customers
have some other old distributed technologies eg .net remoting/Asmx.
Our situation
Technology for old suite of products (Windows 2003)
Finance Back Office in ( .NET Remoting,Winforms, Webservices,SQL Server 2005)
Front Office (SQL 2005,ASP.NET)
Technology for new suite of products (Windows 2008)
Finance Back Office in (WCF,Winforms,some components WPF, Webservices,SQL Server 2008)
Front Office (SQL 2008,ASP.NET MVC and some components in silverlight)
Our new/expected customers want our suite of products using real SOA (WCF) so we have migrated our products
(as they have systems from java world and would like to talk to our WCF services).
Some of our old customers who got .NET implementation of backoffice is serving well them from last 10 years, our products nicely settled in their enviornment happily chatting around their mainframes.(They are the one who are very reluctant to upgrade)
Existing customers are under impression it is a big technology stack change so they may need new hardware and definitely needs lot of testing efforts/resources to test new technology stack where actual benefit they are getting is small functionality which was done in last 6 months but new features are must for them because of UK budget change.
Here are questions
1) I need strong arguments for convienceing my old clients to upgrade to our new suite of products around following
WCF Over .Net Remoting
SQL 2008 Over SQL 2005
Windows 2008 Over Windows 2003
2) Are there (or will there) be any issues for keeping two code bases for Server side one for .Net remoting and another for WCF (if any body have successfully/unsuccessfully done it)
This might be the tricky case when some of our client still refuse to upgrade to new stack but we still have to deliver some of new features which were in RND
while we migrated to wcf.
Following will not be problem as we have good thoughts when we
started WCF
1) Obtaining proxies for Services are nicely seprated and easily replaceble for WCF and .net remoting.
2) Hosting shells are not issue as they are sperated nicely already.
If any one need more information please write back.
The general support from Microsoft for SQL 2005 has expired at April 12, 2011: http://support.microsoft.com/lifecycle/?p1=2855.
The general support from Microsoft for Windows 2003 has expired July 13, 2010: http://support.microsoft.com/lifecycle/?p1=3198.
.NET remoting is shipped with .NET Framework 1.1 and is considered legacy from .NET 2.0 onward. For .NET Framework 1.1 the .NET Remoting help in shown at: http://msdn.microsoft.com/en-us/library/kwdt6w2k(v=vs.71).aspx. Now if you change the version for the same help file to .NET 3.0 (2.0 runtime) it is shown at: http://msdn.microsoft.com/en-us/library/kwdt6w2k(v=VS.85).aspx which the first line statement:
This topic is specific to a legacy technology that is retained for
backward compatibility with existing applications and is not
recommended for new development. Distributed applications should now
be developed using the Windows Communication Foundation (WCF).
These are usually good arguments for customers to start using newer platforms, because the lack of general support from Microsoft increases the risk of problems not being solved anymore with service packs or hotfixes and raises the cost of ownership of the product.

Target framework, what does ".NET Framework ... Client Profile" mean?

In Visual Studio 2008, the target framework settings for a project are
.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
However, in Visual Studio 2010 they are
.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
.NET Framework 3.5 Client Profile
.NET Framework 4
.NET Framework 4 Client Profile
What do the Client Profile settings mean?
Edit
A little more experimentation shows that with MVC, WebForms and WCF projects you don't get the Client Profile options. When creating WinForms and Console applications, the default target framework is .NET 4 Client Profile. Which makes sense.
The client profile is a smaller version of the full .NET framework that contains only the more commonly used content. Scott wrote a nice post about this. Here and here is an official introduction.
The client profile was added recently, so VS 2008 does not know about it yet. The client profile is one of the major features that come with .NET 4 and VS 2010. Since the Client Profile is a subset of the full .NET 4 framework, you don't need to install it if you already got the full .NET 4.
It can be an advantage to develop against the Client Profile since it exists on more machines than the full framework (and it is smaller in download size for your customers).
The disadvantage that comes along naturally - it does not include everything. If you are developing a server application or a program that uses uncommon parts of the framework, you'll need the full framework in any case. Typical client programs, however, are likely satisfied with the Client Profile.
The Client Profiles are smaller, more compact versions of the .Net Framework. More info here.
It is a subset of the .NET framework for CLIENT applications (i.e. applications installed on the client computer).
As such, they do not incorporate server technologies. THis allows the client download to only install a smaller part.
Server technologies are for example ASP.NET.
Using ".net client profile" as search on Google, first link leads to http://msdn.microsoft.com/en-us/library/cc656912.aspx which has a detailed explanation.
Also the local .NET documentation (F1 - I hope you are aware this exists) has the same content.

Will I experience pain if I cut back to Visual Studio Express?

With the upcoming release of Visual Studio 2010, and all the lovely new features in C# 4.0, I would really love to update from 2008. However, over the last few years, I've managed to get student pricing, or even free versions via the MSDN Academic Alliance.
Now I am no longer a student.
I can't seem to justify the $AU500 pricetag of even the Standard version for what is at the moment, essentially a hobby. As much as I may like for it to be, it just isn't paying the bills.
So, I've read on the Microsoft site that there's no non-commercial clause in the Express version EULA which is good because I do the occasional bit of paid work in it. How much is missing from the Express version though, compared to Professional (what I use currently, and what the 2010 beta is)? Am I likely to go through withdrawal pains as I reach for something that just isn't there?
As far as addons go, the only one I've really played with is VisualSVN, and I can live with just using TortoiseSVN manually. Anything else I should be aware of?
Version comparisons can be found here: (For 2008) (Edit: A far more in depth document can be downloaded from here)
The things that leap out to me as features I wouldn't want to be without are:
Extensibility (no plugins like VisualSVN or Resharper)
Source Code Control
Remote debugging
64-bit compiler support (x64) (from the first link, though the document implies you can make 64bit apps...)
SQL Server 2005 integration
No setup projects (for making MSI installers)
Limited refactoring
Some missing debugging tools (especially the threads window)
If you can live without those (and the other limitations that wouldn't bother me personally) then I guess that you'll get by with Express just fine.
Final thought: Express isn't your only option for free .net development, there is also SharpDevelop which has some advantages (SVN integration, compact framework support) over Express. Though I'm sure it has many limitations too.
Do you do any entrepreneurial work? If you're building the next killer app, check out BizSpark: http://www.microsoft.com/bizspark/
There is new program now available from Microsoft to allow web developers to access the Microsoft Stack similar to the BizSpark program.
It is called Website Spark. VS 2008 Professional Edition and SQL Server 2008 Web Editon are some of the tools available through the program.
Of all things I would probably miss the ability to install extensions. Especially tools like AnkhSVN and TestDriven.NET have grown invaluable to me...
I would seriously consider investing some money in purchasing VS especially if you can get some of that back by using it for jobs.
Maybe switching to Eclipse and Java is an option for you?
EDIT:
By the way, investing a few hundred dollars is common among ex-students. If you were a designer you would probably have to invest $1000 on Adobe software.
You won't be able to have solutions with multiple project types (so no mixed language solutions), or solution folders either.
The main thing that is missing is the ability to build an installer for a solution.
The work-around is to build the installer using some open source installer for .NET, e.g. WiX.
And multi-language solutions are more cumbersome (e.g. mixed C# and VB.NET).
I use the Professional version, but I didn't experience any problems with opening and building my project/solution in the Express Edition.

Resources