9 ms·
Building a Web-App the Microsoft Way
- wanorris 18y agoMicrosoft has done some good work in the last couple of years at making their tools suck a lot less for web development. ASP.NET MVC, a newer framework with a Rails-like approach, is also coming along nicely. Honestly, the main reason most ASP.NET websites suck so badly is that the Microsoft tries to make its tools accessible to developers who don't want to bother to learn and use web standards, and when used by the standards-oblivious, the resulting web apps are generally very poor in the standards compliance department.
- KiwiNige 18y agoCouldn't agree more, the bar for entry with MS tools is very low, so it's not a surprise that lots of applications written with them suck. The biggest problem I have with MS tools in my day job is usually getting the 3rd party add on tools to work. And those are often license problems...
- kogir 18y agoThe Microsoft platform has worked very well for Loopt as well, though I can't claim we're good enough to have had only two bugs since launch :) As for cost, we spend less on software licensing per year than we do for our least compensated employee by a substantial margin. We've also had no issues with security thus far (fingers crossed).
- jpeterson 18y agoJust out of curiosity, why did you choose the MS platform? I mean what advantages did it provide over the open platforms that would actually be helpful for skilled programmers?
- cainus 18y agoI have no idea why (or even how, now that I think of it) you got downmodded (I put you back up)... I think in this day and age if a platform is going to be closed and non-free, it should have to justify those disadvantages. Where does it make up the slack?
- kogir 18y agoI chose Microsoft initially because it's what I knew best at the time, so it was the fastest way to get a working demo out the door. Then I stuck with it because: SQL Server 2005: The only other options were PostgreSQL and Oracle. MySQL 5 had just come out and all the basic database features I intended to use (stored procedures, foreign key constraints, etc) were new, and thus untested. Oracle cost a fortune (I think I was quoted $65k/core as my only licensing option). SQL Server was a natural choice. ASP.Net: At the time the only other well tested equivalent was Java, and my brief examination of it led me to believe it was basically equivalent for my purposes. It wasn't worth the switching cost. Rails was really new and also required full access to the database, which I don't grant to our web servers. PHP is extraordinarily difficult to keep clean when working in a team on a large project, so it wasn't really suitable (especially for the cell phone portion, which uses packed binary protocols). Python web frameworks were still in their infancy, or I would have chosen it. C#: It's fine for a statically type language. I like that it's similar to Java, but a little more relaxed (delegates, unsigned types, etc.). I'm actually a horrible typist (20 WPM on a good day), so intellisense (increase speed) and compilation (find typos) were key. The .NET framework is actually really good and rivals Java's. MSDN docs are much more useful than JavaDocs in that they actually contain examples :) Now, don't get me wrong. We're not a 100% Microsoft shop. We use Erlang (fault tolerant, distributed session state store), PHP (tile serving), Memcache, Apache (static content and PHP), PostgreSQL, Ubuntu and FreeBSD. As for open versus closed source, not having access to the Microsoft source code has yet to be an issue. We've had to work around things once or twice (usually because what we were doing wasn't in the spirit of the framework), but we've never encountered an actual bug, and Microsoft's products have always worked as documented thus far. I'd rather not need source access than have to use it to get something working ;) Ironically, the places where we've had problems are on the open source side. PHP x86 != PHP x64 (same release version, different behavior) on some distributions (cough RHEL cough), and PostgreSQL on FreeBSD 6 is anything but straightforward (max connection limit problems).
- dawie 18y agoI work .NET in my day job and Rails at night. I feel way more productive working in Rails that in .NET, even though I don't know the Ruby language as well as C# or VB.NET.
- jpeterson 18y ago"Possibly the main argument against using Microsoft from the open source point of view has been the issue of expense. However the .NET Framework can be downloaded for free plus they also provide ‘Express’ versions of Visual Studio and their SQL Server database software which we used and are also free." This only addresses the development versions of their software. What about license costs for the production instances of Windows Server and SQL Server? That's where costs really start getting prohibitive on an MS stack. For a startup at least.
- rbanffy 18y agoHaving about 3 meetings created per day on average since launch would not qualify this app as a success by any count. For this amount of usage, a shared account on a cheap web hosting service would probably do. Most probably any 32 bit item in my interesting computer collection (if I had any Windows boxes, that is) would be able to carry that load without breaking a sweat. However, one could not be able to base a startup on this structure, much less a successful one.
- mrtron 18y agoLet's go on the assumption .NET MVC/mssql is comparable to rails/mysql or django/postgres in quality, performance, time to build, etc. How could anyone consider using the option that is not free and open source?
- wanorris 18y agoIf you're leaving an enterprise job where you developed years of expertise in .Net technologies and wanted to start building on a stack in which you are already an expert.
- kogir 18y agoBefore you've launched you can use the development versions. Once you've moved into an office the licensing cost doesn't really matter relative to other expenses. We spend 13 times more money on cell phone contracts per month at Loopt than we do on MS software licensing (Office, Exchange, Windows Server, VS 2008, SQL Server, etc). Payroll is astronomically more. If the relatively minuscule amount of money you're saving from not licensing MS software makes a difference, I'd argue that you have bigger problems :) There definitely are valid reasons not to use the MS stack, but cost isn't one of them in most cases. We've saved enough time by using it to more than cover its cost. [Edit] For more on cost, look into the Service Provider License Agreement. You pay per month and only for what you used. http://www.microsoft.com/serviceproviders/licensing/default.mspx http://www.microsoft.com/serviceproviders/licensing/default....
- workpost 18y agoASP.NET and C# has worked well for Workpost so far. We were able to get version 1.0 online quickly and any issues we've had lately are not related to the platform. Scaling will be a difficult (but welcome) problem though SQL Server does not have to cost quite as much as most people think it does. Microsoft could, however, offer more incentives and assistance to startups who choose to use their platform. They've made a lot of progress in the last few years toward being more developer-friendly but they need to go even further. Finding talented ASP.NET / C# developers willing to work on startups can also also a challenge.
- kogir 18y agoMany of our best developers didn't know C# or ASP.Net when they started. That doesn't appear to be a huge problem if you find the right person. We've actually received quite a bit of support from Microsoft (free software, design review sessions, books, etc). http://microsoftstartupzone.com/blogs/ebt_success_stories/archive/2007/07/05/loopt-creates-new-social-mapping-service.aspx http://microsoftstartupzone.com/blogs/ebt_success_stories/ar... As for cost effective licensing: http://www.microsoft.com/serviceproviders/licensing/default.mspx http://www.microsoft.com/serviceproviders/licensing/default....
- axod 18y agomicrosoft way is not very sportsman like
- andrewf 18y agoI'm interested in playing with the Microsoft stack a bit more, for the usual reasons people play with languages they don't work with. Can anyone recommend a sweet spot to aim at (is ASP.NET MVC really usable yet?) and maybe a book or guide? When I wrote a sample client to accompany a web service I'd developed, I used VS2005 and a Sams "ASP.NET in 24 hours" book. I suspect seasoned MS stack people would recommend something else.
- wanorris 18y agoASP.NET MVC is pretty close to release, so I wouldn't be afraid of it. If you know Rails or Django, many of the same concepts will be applicable. Manning has an early access version of ASP.NET MVC in Action that may help you on the book front, but I can't vouch for it. Books for brand new technologies are always a tricky topic. Worst case, there's all sorts of info all over the blogosphere. The best general-purpose .Net book I have that the moment is Apress's immense Pro C# 2008 and the .NET 3.5 Platform (Fourth Edition). It covers all the general C# and .Net stuff and also has all the new LINQ pieces, lambda expressions, etc. VS 2008 has some nice enhancements for web development, including some nice CSS debugging pieces that help you isolate where a bit of style is coming from and a decent JavaScript IDE with a debugger. For database access, you can use LINQ, NHibernate, or the (prerelease) Entity Framework. If you've worked with Hibernate on Java, NHibernate is an obvious choice. Otherwise, LINQ is pretty slick, and there's a ton of information out there on it.
- johns 18y agoI would also suggest using SubSonic over LINQ and NHibernate if you like ActiveRecord