Can I really develop on ASP.NET MVC for free? [closed] - asp.net-mvc

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'm currently developing a web app on Django/Python, and I consider moving to ASP.NET MVC. I downloaded the Visual Web Developer Express edition, read NerdDinner, and I'm ready to go. I will probably keep working on MySQL.
One of the reasons I chose Django+MySQL in the first place was that it was free of charge. I'm bootstrapping a business and can't afford to pay for expensive software, even for deployment (storage and bandwidth are the exception).
My question is: can I develop on the express edition and get my product to production without having to pay to Microsoft? This is both a legal question and a practicality question (Assume I'll use open source version control, build server, etc).
I'm not experienced in Microsoft's different licenses, I wondered if anyone has any experience in driving a product to the web based solely on the express editions (I know you guys are not lawyers, but some of you are probably working at companies paying lawyers to help with such decisions...)

You've asked two questions here, so let's take a look at both.
From a legal standpoint the answer is pretty straightforward: yes, Visual Web Developer Express is provided free of charge and there is no limitation regarding using it commercially.
Your second question has to do with the practicality of using Express editions commercially. The short answer is: yes. The longer version of the answer sounds a little more like "yes, but...".
Although Visual Studio Express editions are fantastic -- especially when you consider their price -- you should be aware that they do lack functionality. To me, the most important things Express editions lack are --
Extension support. There's a healthy Visual Studio add-in ecosystem out there that you'll be locked out of. Not a fatal flaw, for sure. Just something to keep in mind.
Ability to create setup projects. Again, not fatal. You can do it manually or using some external solution. Also, if you are developing something for use on one customer (or for yourself) this is a complete non-issue.
Native 64-bit support. This is the one I can't work around. If you need to work on 64-bit environments and use some 64-bits controls, you're in a pickle.
Support for test projects. If you are into test-driven development, this is a very cool feature you'll miss on the Express editions.
Also, they have no class designer, some (small) limitations on debugging and most development tools you'll find that work with Visual Studio won't work with the Express editions.
All in all, you can definitely develop with VS Express. Compared to the tools you probably had for Django+Python, Visual Studio Express is a big leap forward anyway IMHO.
Also, you can always go with the Express edition for now and upgrade later if necessary.

Point 7 in the "Express" FAQ probably answers it best:
Can I use Express Editions for commercial use?
Yes, there are no licensing restrictions for applications built using Visual Studio Express Editions.
Other then that, reading the EULA should confirm that there is no "products built with this software is for private use only" clauses.

Not only can you develop ASP.NET MVC for free, you can do it on Linux using Mono, as Miguel points out and Michael explains... so in addition to no license fees for the runtime or IDE, you can host on free operating systems too!
You can also use MonoDevelop on Mac OS-X and although I'm pretty sure Windows users will prefer Visual Web Developer Express, they are getting MonoDevelop running on Windows, too.
When you've made your first million dollars, then you can 'upgrade' to Visual Studio 2010 :)

Yes, the Express editions are really free.

yes, you can develop on the free versions of microsoft software. you will have to pay for the os license of the development and hosting servers though.
for a business you may want to investigate the bizspark program which can give you up to three years of everything, including hosting.

It is absolutely possible to develop and deploy ASP.NET and ASP.NET MVC applications without having to pay to Microsoft. I see no any limitations/differences (both legal and practical) in deployment of ASP.NET applications, developed in express/full versions of VS. Personally I would recommend to buy VS2008 Pro (or maybe wait for VS2010) - it's much more powerful then VWD Express. Yes, It is expensive but I think it is worth its money.
UPDATED:
Reliable Dedicated/VPS hosting is expensive for both Linux/Windows platforms. So if your site will grow quickly - yor main costs will be hosting not tools

in development yes it is free visual studio express is really free but when it comes to deployment you will really need Windows server 2003 or 2008 you might also need another edition of SQL server if express doesn't meet the requirement :)

There is no need to settle for the Express editions or open source. If you are a legitimate startup, you can join Microsoft's relatively new BizSpark program and get a free MSDN subscription, which includes full editions of all the software for development purposes (e.g. Windows Server, SQL Server, etc).
Plus for web apps you get licenses to deploy the software in production, which I think makes BizSpark unique versus other MS partner programs. It doesn't include free hosting however.
Check out the site for eligibility requirements and restrictions.
(sorry Matt I know you mentioned Bizspark, but I wanted to provide more info and emphasize how relevant this is for the question).

Related

What is the correct architecture when upgrading multiple small vb6 applications to a centralized MVC app

Challenge:
We currently have 100+ vb6 applications. Our setup is that for every desktop server that we have (currently 20), those apps should be installed. So all in all, you can do the math. Users would then approach that server, or connect through RDC, and they will generate their reports there. Problems have already popped up, but the main reason the management now chose to upgrade is because we do not have VB6 dev't licenses anymore.
What we are currently using:
Visual Studio 2010 SP1 Professional
Microsoft Server 2008 R2 (For the deployment)
Oracle 11g (where the data are coming from)
The Question:
Given the cards we were dealt, I would like to seek a proper strategy in consolidating these decentralized reports. Right now, I'm suggesting we do MVC. However, I am not certain how it should be done in such a way that multiple developers can contribute in the development simultaneously. How/what will be the layers (DAL/BLL)?
We are new to this coming from a VB6 background. Thanks!
Well, not to rain on your parade, but questions like this always boil down to ROI (return on investment), and based on what you've said, your ROI is incredibly small. MVC is a good bet, since it's based on a pattern that all good applications should follow to a greater or lesser extent, but if you're stuck with VS2010, you won't be able to work with the latest and greatest versions of MVC/Web API/Entity Framework/etc. That means your brand spanking new app will already be out of date and rotting before you even kick it out the door.
If your organization is unwilling or unable to upgrade to at least VS2012 (but as long as you're doing that you might as well go all the way to 2013), so that you can utilize MVC5, Web API 2, and Entity Framework 6, then forego any new development and just do the bare minimum to make your current applications work. From a cost perspective it's just insane to go into new development on old, out-dated technology.

ASP.Net MVC on Linux/Mono

I am thinking of developing a website using the ASP.Net MVC framework on Linux. I would like to know:
what are the best practises for developing such a site (are they any different for mono/ Windows)?
any gotchas I should be aware of
any (material diffeences) - e.g. missing/proprietary libraries/componenst between Mono and .Net
are there any special directives, modules required to run Mono with Apache?
Are there any performance differences between a site hosted on Windows/IIS and Linux/Apache?
I intend to do most of my development using VS Studio - can the site be developed using VS and then deployed on Linux?
I am aware that this question has been asked several times here on SO. However, most of the questions date back to 2008 or 2009 - which is a very long time in internet time. Things may have moved on since those answers - so those answers may no longer be relevant.
I have to state that I am NOT interested in hosting the site on a Windows server - so I am only interested in what works for a Linux server deployment.
I'am currently working on a MVC 4 app and we are using Mono. If you are just planning to have a basic website, you should go for it. But for more complex flows, honestly, I think you should do a little bit of research first, to see if the features you want to implement are supported in Mono. Things you should consider:
only a set of restricted libraries are supported on mono ( for example, right now we are having some issues due to the fact that the mono libraries (Novell and DirectorySearcher) for LDAP do not support pagination)
the developing environment will be different than your server env ( I am using Visual Studio, we managed to pass this limitation by adding a lot of logs)
we do our publish using FTP, so yes, you can deploy it from VS, using a publish profile set up for FTP
it's free, but it will take a lot of time to research & do special thinks just for the sake of Mono
not a lot of documentation available, because not a lot of people use it, so if you have a specific problem, it will be more difficult to solve
My experience is from 2011, but I am pretty sure you will have to experiment to see works and what doesn't - that's my experience with Mono.
Most of your questions are extremely broad and I think your question will be soon closed.
As for your last question this was the way I did it and it worked (develop in VS->deploy to Linux), but you must be aware that:
just because your code will work in the VS debugger it doesn't mean it will work when deployed;
there is no one-to-one mapping between Mono and .Net. Even when things work it doesn't mean they will work the same way. For example the implementation of the encryption code used for http cookies was very different between mono and .net.

Where can I find a "Turbo" or "Lite" version of Delphi?

I have a co-worker with a strong background in Ruby that is interested in getting started with Delphi and native development. However, I understand that Turbo Delphi (based on Delphi 2006) is no longer available for download.
So...where does that leave him? Is there any low cost or introductory version of Delphi available legally somewhere? Or is there an offering on the horizon from Embarcadero?
Note: Please don't suggest any legally questionable versions, as that is not an option we will consider.
UPDATED: To sum up all answers the only legal and free version of Delphi that you can download and install now (unless you already have a personal license for Delphi 7 Personal or Turbo Delphi) is Delphi Community Edition.
And the next closest thing is the Lazarus IDE and the Free-Pascal compiler.
This with this should be close enough. It speaks the language at least.
IMO the Delphi 7 Personal Download is the only available legal "non-expensive" version of Delphi. But is is really limited in its features.
It's really a shame that Embarcadero forces one to invest some USD 900+ even if one wouldn't need all the bells and whistles of the Pro version. Especially if products from the "other company" (the Express versions) are given away for free.
I am talking about the need for the discontinued Turbo product line (based on a stable foundation, i.e. D2010 and not D2006) for the hobby software developer to get him started. Maybe his is even willing to upgrade to a full featured version some day.
Chris
Extracts from "About Lazarus":
So just what is Lazarus?
Lazarus is the class libraries for Free Pascal that emulate Delphi. Free Pascal is a GPL'ed compiler that runs on Linux, Win32, OS/2, 68K and more. Free Pascal is designed to be able to understand and compile Delphi syntax, which is of course OOP. Lazarus is the part of the missing puzzle that will allow you to develop Delphi like programs in all of the above platforms. Unlike Java which strives to be a write once run anywhere, Lazarus and Free Pascal strives for write once compile anywhere. Since the exact same compiler is available on all of the above platforms it means you don't need to do any recoding to produce identical products for different platforms.
Yeah, but what about the GUI? What widget set are you using?
That is the neat part. You decide. Lazarus is being developed to be totally and completely API independent. Once you write your code you just link it against the API widget set of your choice. If you want to use GTK+, great! If you want it to be Gnome compliant, great! As long as the interface code for the widget set you want to use is available you can link to it. If it isn't available, well you can write it.
For example. Let's say you are creating a product on Windows using the standard Windows widgets. Now you want to create a Linux version. First you decide what widget set you want to use. Let's assume you want to use gtk+. So you copy the code over to your Linux development machine, compile, and link against the gtk+ interface unit. That's it. You've now just created a Linux version of the Windows product without any additional coding.
At this point in the development we are using Win32, gtk+, Carbon and QT as our API widget set. As soon as Lazarus reaches a 1.0 release developers will be able to start to create the interface unit to tie the LCL (Lazarus Component Libraries) to other widget sets.
So is this thing really RAD like Delphi?
It sure is. Is it totally completed? No not yet.The over all IDE is complete and can be used for most programming needs. Several aspects
of the project are still in need of help. Hint. Hint.
Can I use my existing Delphi code?
Some of it yes. If the code is standard Delphi pascal and it uses the standard components found in Delphi then the answer is yes. If it uses some specific database, OCX, or DCU then the answer would be no. These items are specific to Windows and would only work on and within Windows. However, if you are only looking to create a Windows product using Free Pascal and Lazarus then the answer would be yes. This hasn't been added to the LCL yet but it should be possible in the future.
Can I create commercial products with this?
Yes. The code for the Free Pascal compiler is licensed under the GPL. This means that it is open source, free, whatever name you want to stick to it. You can modify the code if you wish but you MUST distribute those changes or make them available to others if they wish to use it.
The FCL (Free Pascal Component Libraries) and the LCL (which will eventually become part of the FCL) are licensed under a modified LGPL. In a nut shell this means that you can write your own proprietary software that just links to these libraries. You can sell your application without the need to supply or make available your code. However, as with the compiler if you make modifications to the FCL or LCL you must make those changes available to the general public and the world.
Just for completeness, you can get a 30 day trial: https://downloads.embarcadero.com/free/delphi
Also, I'd suggest going to a Delphi conference. You have about a 1 in 30 chance of winning a free copy or a significant discount.
Embarcadero launched a starter edition of Delphi for $199. Latest version is Delphi 10 Seattle.
As Mohammed pointed out there is a upgrade price of $150, from any other IDE or developer tool product including earlier Delphi products.
Important update:
Don't simply download any Delphi version from a mirror, even when they used to be free, when they are no longer available from Borland/CodeGear/Embarcadero.
According to Alexander's comment and contrary to the quote below, even though they were free, it may not be legal to newly install them now.
I wasn't aware of that when I quoted the answer from the question mentioned. Sorry.
if you however decide to learn Delphi,
you might want to look for Delphi 7
Personal which was removed from
Borland / CodeGear / Embarcadero
websites, but still is available on
some mirror hosters. I believe it is
legal to use this as it was once
published as freeware. – migajek
yesterday
Quoted from a comment on the question Do I need to free these objects?
The same may apply to Turbo Delphi 2006...
Since July of 2018 there is a Free Community Edition of Delphi.
At the moment the Delphi Community Edition supports both VCL and FireMonkey as well as building for Windows, macOS, iOS and Android, and is a feature rich IDE (compared to Turbo Delphi) with a limited license. In terms of features the new Community Edition is much, much, much better than past Starter or Turbo editions.
It's targeted at individual developers or companies with total revenue less than 5000 USD and less than 5 developers in the organization (eg. freelance developers, startups, students, non-profits). Note that the total revenue threshold includes all your projects and contracts, no matter if the Community Edition was used in those projects or not.
The Delphi Community Edition comes with a 1 year license. Once it expires you have to reinstall the Community Edition and accept the new Community license (license terms might have changed by then). In this regard the Community Edition differs from Turbo Delphi, which was kind of "use forever" once installed with a personal license.
As another side note, the Community license does not allow transfering the command line compiler to other machines.
Some quotes from the Delphi Community Edition FAQ:
Community Edition is
both designed to allow individuals and startups to bootstrap their
vision until annual revenues reach $5,000 at which point a
Professional Edition license can be purchased.
If you're an individual you may use Community Edition to create apps
for your own use and apps that you can sell until your revenues reach
$5,000 per year.
If you're a small company or organization without revenue (or up to
$5,000 per year in revenue), you can also use the Community Edition.
Once your company's total revenue reaches US $5,000 per year, or your
team expands to more than 5 developers, you can move up to an
unrestricted commercial license with Professional Edition.
...
You may sell any apps or components developed with the Community Edition under the Community Edition license until your annual revenue exceeds US $5,000 or local currency equivalent. Please see license terms here.
...
Can I sell my apps or components built with the Community Edition?
A Professional, Enterprise or Architect edition license is required for developing or deploying any apps or components within any company with total company revenues exceeding US $5,000 or local currency equivalent.
...
If I work for a company with more than US $5,000 in revenue, can I still download Delphi Community Edition or C++Builder Community Edition for my own personal use?
You can download Delphi Community Edition or C++Builder Community Edition as an individual and use it to develop applications for your personal use and use it to create software for you to sell (up to US $5,000 in revenue, see License Agreement for details).
...
How can I get a new 1 year key after my current CE key expires?
Users will be able to request a new 1 year key through the website. That key will be > applicable to the current CE edition that’s available for download at that time.
We will assist you to stay current and up to date, always on the latest version.
As Marco Cantu said Long live to Delphi!
You might alternatively take a look at free CodeTyphon. It is a powerful one click installation package for cross platform native Delphi like RAD/IDE based on Lazarus/FreePascal. Your friend will start coding just few minutes after download. CodeTyphon already supports 4 CPU/OS hosts (Win32, Win64, Linux32, Linux64), and 16 CPU/OS targets (arm-Wince, arm-Linux, arm-Embedded, arm-gba, arm-nds, i386-Win32, i386-Linux, i386-FreeBSD, i386-Haiku, x86_64-Win64, x86_64-Linux, x86_64-FreeBSD, powerpc-Linux, powerpc64-Linux, sparc-Linux, sparc-Solaris). More are supported in Lazarus/FreePascal, but others are not yet integrated in CodeTyphon.

Why is Microsoft stack said to be costly? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Many people suggest to develop web applications in open source technologies.
And one of the reason is the cost involved in hosting and the licensing of software.
How costly can it be to build and deploy an application in asp.net mvc compared to any other open source technology?
I don't think they're talking about the time required to develop on the Microsoft stack. They're talking about the cost of:
tools (Visual Studio, Resharper);
operating systems (Windows Vista, Windows Server); and
databases (SQL Server 2005/2008).
And yes you could use Mono + Linux but that's a feature-incomplete implementation (at this point) and presents greater risk than the Microsoft-certified solution. Plus MonoDevelop isn't as good as Visual Studio. I think Mono is still fairly limited as a production option.
Microsoft has a program for startups (called BizSpark) that can effectively eliminate those costs for startups (less than $1m annual revenue iirc) but get beyond that and it can get real expensive. Based on some of Jeff's comments I have to wonder if Stackoverflow is deliberately staying below this level (by only accepting a certain amount of ad placements) to avoid this. Note: he hasn't said that. That's just a question that occurred to me.
But compare that to say a PHP or Java development stack:
Dev machine: Windows, Linux (free), Mac or whatever;
MySQL (Free) running on Linux;
Apache or nginx (both free);
etc.
That being said, the concept of using really cheap boxes, while popular, isn't universally better. You'll use a lot more power that way (compared to higher spec servers). And higher spec severs will tend to work out cheaper in commercial licensing costs than buying software for lots of cheap boxes. So you have to be careful in comparing commercial vs non-commercial solutions.
Take a look at Scaling Up vs. Scaling Out: Hidden Costs.
I don't want to get into the issue of the cost of development because there are too many factors to make any unqualified statements. Like any other stack, there are probably things it's good at and things it could be better at.
All the discussions here about cost assume that you're going to buy your own server (which is pretty much crazy for 99% of the world). Third-party hosting services are generally pretty cheap, and it doesn't matter whether you go for Microsoft or Linux or whatever. Let the hosting service deal with all that crap, and go with the stack that is easiest for you to use.
Unless you qualify for BizSpark or maybe the Empower program, you will need to buy licenses for Windows Server, SQL Server, Visual Studio, Windows 7 (or Vista, XP). For a startup that can be cost prohibitive.
That depends entirely on which Microsoft products you license for your project. For example, SQL Server 2008 Enterprise alone costs $24,000. If you can get by with the Express addition, however, it is free.
http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx
Then you need the OS (again several choices) and development tools (yet again more options at different prices).
Summary: If you are building a small app it is not very expensive. There are free versions of most parts of the stack except the OS. And if you are using a hosted solution, the OS cost is even hidden. If you are going large and doing it all yourself, it can be extremely expensive.
On a totally different side of the spectrum, check out the prices at GoDaddy.com for shared hosting (and there are probably other hosts as well). On the 7-buck-a-month plan you get ASP.NET v1.0/2.0/3.0/3.5 and two MS SQL databases. Serious devs will say, "who would use shared hosting?" but seriously, put some hosting up there and hit it hard. You will see that the response times are nice, app deployment is easy (but you do not get full control, so you have to use medium-trust security and other stuff), and you get 1,500 GB of monthly transfer and 150 GB of disk space.
So that's the full MS stack for $7 a month. Of course, everything is shared (even the MSSql instances), but for MANY apps it is a perfect solution. Shared hosting is a joke in certain cases, but colocated servers and all that stuff is a joke for many startups that have no particularly interesting technology needs.
For basic web apps they're strictly talking about Windows itself. Linux is free, so hosting is cheaper for Linux-based hosting than for Windows-based hosting. However, the entire Microsoft stack beyond the initial Windows license is completely free, so long as you stick with the "Express" flavors of all parts. SQL Server 2008 Express is more akin to a straight mySQL deployment than SQL Server 2008 Standard Edition is.
Download: MS Web Platform (free tools)
For enterprise applications, they're talking about the enterprise-class toolsets. SQL Server 2008 Standard or Enterprise edition costs thousands of dollars. Visual Studio 2008 Pro costs hundreds. However, if you're comparing to Linux, you really don't need any of that; anyone who needs that stuff is already working with the Microsoft stack at a heavy level anyway. The Express stack will get most people very far.
I don't know Microsoft's specific licensing policies (I can assume they are pretty reasonable), but I can tell you that developer tools are often more pricey than you'd imagine when you start licensing for your company.
Often when you start buying developer licenses for teams of, say, 20-50 you are starting to talk about millions of dollars up front costs. $100,000 per developer wouldn't be unheard of (not counting the often mandatory annual support fees which can double that number easily).
I wouldn't think this would happen with Microsoft because Microsoft developers are such a wide market, but I wouldn't be surprised if specific MS developer licenses for all your assorted tools--database, MSDN subscription, enterprise servers (which will probably be required by the database or something), ... got to be rather pricey once you started multiplying them by 20 - 50 seats.
If you want to use ASP.NET you need
IIS
A server with Windows (for IIS)
Visual Studio
A work station with Windows for Visual Studio
If you want to use PHP, Perl, Mono, Ruby... you need
A web server that supports the technology wanted. May be Apache, IIS...
An OS that supports your weberver
A workstation with any Linux, Window or mac
So if you chose to use an Open technology, you have the choice to work with what you want.
If you want to use .NET you have to work with Windows.

ASP.NET MVC Development tool

Following on from my previous question, If I am beginning to learn asp.net MVC, will the express edition of visual studio web developer be enough, or should I consider the expensive full version of Visual studio. What are the limitation of such express version I may run into? or am I better using an Expression tool? (or is this something I can progress to later.) Any advice anyone? Thank you.
Re-sharper (everyones favourite add in ;-)) requires the full version of VS. It's worth getting for that reason alone in my view.
One thing that comes to mind is lack of the SQL tools in the express versions, such as the Server Explorer (http://msdn.microsoft.com/en-us/library/cd2cz7yy.aspx). I am not sure if you can effectively do LINQ to SQL or LINQ to Entities without it.
On that note, I strongly encourage the full version of Visual Studio 2008 Professional.
I know that since you are using the express versions, you qualify for the upgrade price for Visual Studio 2008 Professional.
On a side note: the Expression products are more geared for designers, not coders.
Express is definetly a good start, and if you're just learning you shouldn't miss some of the features from the full version too much. For SQL management, Microsoft now offers SQL Management Studio Express as well (along with SQL Server Express, of course).
The major things that I personally miss when I'm using Express rather than a full version are:
Class Diagrams - these are pretty useful when you're starting off a project and want to map out the classes you'll want to create. With a simple MVC application there probably won't be a huge need for them, however.
Attaching to a process for debugging - Express editions include the full debugger, but you can't attach to an already running process. This is particularly useful if you're using NUnit and you run into a problem and want to debug. There's some workarounds, but they aren't particularly elegant or simple.
Integrated testing - I'm actually surprised this wasn't included - Microsoft should realize that getting new developers to learn good habits like Unit Testing should be encouraged.
The Expression suite is targeted towards designers more than developers. I don't think it's a good fit for what you are looking for.
SharpDevelop is another free option. It's good if you find Express lacking, but I personally don't find the experience as "smooth", and it's particularly short on features relating to web development.
"Full versions" of Visual Studio are not free! If you are beginning to learn asp.net MVC, you shoud try Visual Web Developer first. Yes, it does not support integrated testing but you can use any 3d-party tool (xUnit is the best) for testing.

Resources