As a fan of Heroku and Git I love seeing this and other efforts to duplicate their ease of deployment and process for .NET developers.
However, I question whether there is enough of a market for these services to be truly successful. There are plenty of .NET developers using Git - but for the most part many of them are just now getting to Subversion - or even worse going with TFS (Microsoft's mess of a SCM). MS developers are also traditionally inside medium to large companies - the majority of which want their applications hosted in their own data centers. MS might be able to convince them to use Azure - but a small startup is going to have one helluva time convincing them to host their LOB app with them.
Exactly. The .NET "community" is home to mostly enterprise devs who only ever code to pay the bills. Any developer that is hip to Herkou, and loves Git and automated testing and deployment, is not going to be starting a new .NET app. They'll start an app in Ruby, Python, Clojure, Haskell or Smalltalk (or something).
I'm only speaking from experience here. It's just not a community of tinkerers that's on the cutting edge. I can't think of a single exciting .NET open source project. All of the good stuff that I know of in .NET is commercial: Stack Overflow, Unity, umm... anything else? It's a community that waits for the next thing to be handed down from Microsoft.
Show me Heroku for Seaside... now we're talking!
P.S. If anybody wants to show me some vibrant cutting-edge open source projects built on .NET instead of just downvoting, I'd love to know. Thanks!
The .Net community has a weird shade to it, absolutely.
That said, you're clearly speaking to your perception of what you see on tech-help boards -- and confusing that with the whole of the .Net ecosystem. .Net has vastly larger segment of 9-5/offshore/crap/whatever programmers than most other programming communities (aside from Java, being a similarly targeted platform). That doesn't mean that there aren't a bunch of DVCS-using, TDDing, PairProgramming, SE hipsters out there (or whatever you think is so awesome).
There's Mono (which kicks ass), NHibernate (which kicks ass), a plethora of cool projects on Github, C# is a killer language (compared to similarly rooted, C-like, imperative languages at least), F# has recently been promoted to a first class language on the platform, LINQ is unmatched in similar languages/platforms, .Net is pretty rock solid, and high performing. (edit: Oh, also, MVC, F# + MVC, Lightweight HTTP servers ala Sinatra)
Plus, the right tool for the right job. Let's not get all 'anyone who knows what's up would be using Ruby', etc.
The only really interesting part of .net to me is the F# language, which is ocaml for .net with sugary monad support. The language itself was recently open sourced, there's a VS vim plugin written in the language, and there's at least some game development going on in the language. F# is my language this year and I'm using it as an excuse to learn the environment. I've always been more impressed with .net and its attendant technologies than I have been with the JVM.
OSS on .net is weird in that commercial pressures and Microsoft's anchoring of the system warp it a bit. Things are located in weird places (codeplex) and discussions happen in weird places. The community is also fairly cut off from the *nix oriented OSS community. I run across stuff randomly that I'm surprised is .net and open source but it's intermittent since I'm mostly in the normal OSS ecosystem and am not particularly well connected to the .net world.
It depends on what your definition of "truly successful" is. I recently started working on a .NET app, but I was thinking about switching to Java when I heard about Amazon's Beanstalk offering. If these guys can come close to replicating that for .NET, I'll take a good look at them.
At the end of the day, though, they have an idea, and have convinced investors that there is enough of a market for this type of service, so good luck to them!
If there were a market for better Windows VPSs, wouldn't that already exist? I think there's a lot of room for players in this market and something tells me you agree.
There is a market for Windows VPSs - we already know that. We are just building a better mouse trap with Epic Win (which is what I think you are referencing).
We definitely thought about going the AppHarbor route - and I can't lie that we might not go there at some point - I just think the market opportunity there is much less in the .NET space then in the Ruby space. (which is why we are focusing on VPSs right now)
A friend of mine is the owner of a hosting-company and the last few years he has seen a rise in demand for good Windows-based hosting-solutions.
As a consequence of this, he has reworked his provisioning systems both for shared hosts and VPSes to work smoothly with both Linux and Windows to the point that the only difference you will notice is the price-tag.
Everything works out of the box. The platform you want, capacity you want, extras, applications etc. And this with no extra manual work for the company.
The provisioning system is a massive enterprisey setup with at least 10 servers. I doubt he would have put in all this effort if it weren't for an actual demand in the market.
That said (and despite getting free hosting as a "beta-tester" and Windows consultant), I'm going to give AppHarbor a try.
Isn't Mercurial pretty popular with .NET developers these days, more so than Git (because of the - accurate or not I don't know - pervasive FUD about Git on Windows)? Our company uses it and so do several others I know. It's also the only DVCS supported by Microsoft's online code repository service. Surprised to see it not yet mentioned here among several source control posts.
I think it's equally popular and we're working on supporting Mercurial as soon as possible. A lot of our users have already expressed that they want it (http://appharbor.com/feedback) - and we're in the business of making something people want
Seems like a winning strategy to take a popular language/framework and make it incredibly simple and easy to deploy. As long as you have a very strong technical team I think this will be a successful YC exit every time. Either it can get huge due to great marketing, or the technology will be desperately sought after by larger hosting companies.
Why would you use Git on Windows instead of Mercurial?
Also, it seems to me that SQL Azure alone may be worth using Azure instead.
Disclaimer: I was an intern in the Microsoft SQL server group last year. Since I'm normally a POSIX kernel developer the rest of Azure was only mediumly interesting, but it seems like SQL Server is one of the really strong advantages of the Azure platform.
I spent some time working with Azure and it was a nightmare. Really Azure should be as easy to use AppHarbor and its nowhere close.
AppHarbor so far seems butter to me. It's something I think is needed for .NET devs. If Scottgu hasn't seen it, show it to him. ScottGu's patented demos would be great if he pushed his bits live up to AppHarbor.
The big problem I have with AppHarbor right now is Git. Git on Windows kind of sucks, although it could just be my lack of knowledge about it. A Subversion version of AppHarbor would be sweet.
Git on Windows kind of sucks, although it could just be my lack of knowledge about it.
No, it's because it was written with POSIX structure and assumptions in mind. Until someone takes the initiative to actually rewrite the git core targeted at the Windows environment, Git will always be a second class citizen on Windows.
I use git on Windows all the time and have no problems with it after disabling the automatic crlf mangling. I am usually pretty confused why people act like Git doesn't work well on Windows. It works just as well for me; maybe a bit slower, but still definitely faster than other SCMs.
I made a similar comment the first time I heard about these guys. We're a .Net based startup currently hosted in Azure and was really excited to learn about AppHarbor. But like you mentioned, there are some other very valuable services in Azure such as SQL Azure which still seem to make it much more attractive.
We committed ourselves to the Azure platform because we also needed things like Table Storage and Message Queues. I'm not quite sure what their road-map looks like, but before claiming to be 'Azure done right' I'd like to see some tips on how I would run my Azure app within their service.
I have to also admit that the GIT stuff basically prevents me from actually being able to play around with it right now.
One of the things we'd like with AppHarbor is to endorse best practices. This means that you'll probably not be able to run your Azure application in AppHarbor without modifications. This is not due to special requirements for AppHarbor, but because Azure requires special code. On the other hand, you are able to create a template ASP.NET MVC application and push it directly.
Another thing is that we will never provide the full range of Microsoft solutions. Microsoft already does that. Our edge is that we can offer more than just Microsoft products, and as we're running in EC2, there's a whole range of providers offering additional value as well.
For instance, we're going to support memcached, because it's industry standard. Microsoft will support Velocity, because that's what they make. I think this is a substantial and important difference.
To sum it up, we're going to support file storage, message queues and what you need to build a scalable web application. Some may be the Microsoft flavor, and other may not.
Hmm, being on EC2, are you going to provide access to SimpleDB, S3, SQS, and SNS? Seems to me that would bring it pretty close to Azure's feature list.
I honestly doubt that the various Git-knocking commenters on this story have any real experience using Git on Windows. They are likely just parroting what they have heard about the early days of Git on Windows.
All of my Windows work during 2010 used Git and it was perfectly fine. The only thing that even comes to mind is that there was a tiny bit more effort with initial setup of SSH than on other platforms.
I kind of have to take exception to that. .Net is a phenomenal platform to develop for and has plenty of cool things to work with (including Silverlight and WPF). Everyone I talk to that has tried to do Android development and WP7 development comments on how much nicer and easier WP7 is to work with. And I call ease of use and eye candy pretty "cool".
At first this seemed great, but for us to even consider switching we would need to know a few things:
- How backups work
- How does well does it scale
- How is the MsSQL organized, shared db with thousands of users?
- SSL is a must
- Can't run any real web app without services, background processes
- Pricing (bandwith, storage, etc.)
Since you're obviously happy with the setup, I'm curious about what specific setup you used for git in Windows. Last time I tried it, it was (literally) a cluster-fuck which completely set me off git.
Do you just use cygwin'd git wrappers? Do you use any additional tools? Any advice would be appreciated as I'd love to try this service out on its own merits (and not biased by git's lacking merits in a Windows environment).
One of the things we do to make it easier is our support for basic authentication when pushing. This removes any requirement for getting SSH to work on Windows, which is usually the issue you'll run into.
I second this, you can install straight from an installer and get a Git command line, Git GUI and a plugin for VS. It really is almost a one click process.
This is great. I think a good payoff for all the work they've put in would come from acquisition by microsoft instead of selling this as a service to customers.
Very cool. It will be interesting to see how successful AppHarbor can be without first establishing a competitor to Azure Appfabric.The service bus and access control inherit in Appfabric makes cloud computing palatable for enterprise companies.
The problem for them of course is they've chosen a dying platform. Microsoft's operating systems, mobile toolkit, and their entire technology stack as a whole is coming to a dead end. I have never met a developer younger than myself who uses any of Microsoft's technologies to build anything, and I don't see this ever changing.
Much like "How could X have won? I don't know anybody who voted for him.", this is perhaps more of a comment about your social circles than about the MS stack. It isn't my kettle of fish either, but you could go to e.g. FogCreek and meet smart people doing fun stuff with it. Ditto Java.
Can you show any evidence of Microsoft .Net or Azure gaining popularity? I admittedly have no evidence other than my own social circles and preconceived notions.
Ah yes, because you've never met anyone then that must mean its dead. I'm curious, how old are you? I'm 26 and working full time on a company I founded running completely on .Net and Azure.
In the tech field, dying for a large company generally means becoming a follower rather than a leader. Being defined by trends rather than defining them. Talking about future innovation, while others actually innovate.
It's ridiculous to think that MS is going to die-die in the next couple decades. It's equally ridiculous not to acknowledge that their influence is greatly diminished and is diminishing. That doesn't mean things won't change, and it doesn't mean there are no markets around an MS ecosystem.
I don't think that their influence is diminishing, however, computer usage (and technology users) have increased heavily to the point, that a giant like Microsoft seemed to lose its' presence.
In the past, you used to have one computer that you share may be with the other member of your family. Now, you have many computers, a smartphone, a tablet and other gadgets (iPod, Kinect, reader...) there are lot of rooms for lot of other companies, so it seems like Microsoft lost, however, it has not.
Well I'm older than you are. And I didn't say it's dead. I said it's a dead end. Microsoft's dominance has absolutely been on the down slope for the past decade, and this time they will not recover. Your business will succeed if it does not depend on the particular technology stack you've chosen (eg a retail site). But for a hosting company that is dependent on the technology stack growing in popularity, Microsoft's stack is absolutely the poorest choice of all available programming systems to build a cloud hosting service.
Actually its been on the downslope for at least 20 years. I remember when NT was announced people told me MS was dead.
And then with Turbo Pascal and Delphi and Borland C++ the MS tools stack was dead. And so with Java.
In circa 1999 I'd ask college grads about the VB type system... not a single one knew a thing about it.
In 2003 we built a distributed ap on .Net and we were told that it was foolish, we should use CORBA.
There was a time when the LAMP stack was going to kill MS.
There's always a circle that thinks MS is dead. And to them it is. Yet I think they'll be more than fine for the forseeable future -- at least as well as any other stack.
Could you give some examples of why Microsoft's stack is so bad and which ones are better?
I often see these things thrown around but very seldomly with any good examples. We use Visual Studio + .NET + MSSql/SqlAzure and from time to time I take a look at what else is out there but I have a hard time seeing how any of it could make us more productive.
Well, one example that recently irritated me terribly is the performance of VS2010 - on this laptop I'm using at the moment (which is a perfectly decent machine and runs VS2008 perfectly well) it just doesn't run acceptably. The OS has been rebuilt and just about every tweak possible has been applied - even a quick Google search shows that I'm not the only one having this problem.
Now in the past I've used a lot of different development tools and in those cases there is a loose coupling between things like editors (e.g. emacs, vi) and a particular development platform. Now I rather like VS and C# - but the prospect of buying completely new hardware (work and home) just to make up for deficiencies in Microsoft's tools is driving me crazy.
With .Net you really do have to use Visual Studio - if you don't then you probably have lost 70% of the benefits of the platform. If I was to move (actually move back) to using emacs or something as my main editor I might as well move completely to JavaScript, CouchDB and node.js - which was a direction I was moving in anyway for my own projects.
It's a fair point, but I think that has mainly to do with the developers Microsoft are targeting. Buying new hardware every two years costs next to nothing compared to the salary of developers almost anywhere in the world.
Of course, having to buy hardware isn't a huge problem, but it is just an example of a growing feeling that I've had with using a Microsoft stack - that you are completely dependent on the whims of one supplier and if they do something that causes you grief you really have no choice.
However, I find myself tripping up because I'm using the wrong language's syntax or intricacies of library functions often enough with the portfolio of languages I work with already.
I need to know .Net for work. The idea of adding yet more platforms and more variations on the same theme just to be able to play doesn't appeal.
I have a very ordinary Atom netbook in my desk drawer.
With VS2010 (Express) and SQL Server 2008 (also Express) installed and being happily used periodically. SQL Server is a little slow if you're doing anything very ambitious with it but it's fine for routine work, VS runs as well as anything does on the netbook.
Just a personal opinion but I don't find it unacceptably slow or even noticeably slower than VS2008, which I've also worked with.
I suspect your issue may not be purely with VS2010.
For me VS2008 was a dog and 2010 flies. I have had plugin perf issues though, but the core IDE has had good perf. At least for WPF and Silverlight apps.
FWIW, I find 2010's performance to be about on par with 2008, not that that's saying much. Since it does more, I'm reasonably happy. Maybe it depends on your video card, or your multicore-ness?
Why in the world would they support a 10+ year old technology that's been replaced by a technology (ASP.NET WebForms) that's now also widely considered outdated?
Because there is a customer base who would pay for that. I pay $350 a month for a 1/4th rack colocation space and 15mbps bandwidth. If there was a comparable and compatable "cloud" option I might consider it.
However, I question whether there is enough of a market for these services to be truly successful. There are plenty of .NET developers using Git - but for the most part many of them are just now getting to Subversion - or even worse going with TFS (Microsoft's mess of a SCM). MS developers are also traditionally inside medium to large companies - the majority of which want their applications hosted in their own data centers. MS might be able to convince them to use Azure - but a small startup is going to have one helluva time convincing them to host their LOB app with them.