3 ms·
Of course, none of this addresses the primary issues with ASP.NET MVC: it's much, much, slower to develop in than Rails or Django. I'd say just the opposite.
by kenjackson 15y ago
Of course, none of this addresses the primary issues with ASP.NET MVC: it's much, much, slower to develop in than Rails or Django.
I'd say just the opposite. Things like deployment and things like gems are the big issues. Actually day to day dev work though, I think MVC is probably at least as productive as Rails or Django, if not moreso. But I think its personal taste more than anything else.
Code-generation has always been a major annoyance for real (ya, I said it) developers using MS tools. It'll be interesting to see if recipes are able to do what decades of similar promises from MS have failed to deliver.
I don't think Recipes are really meant to address codegen. It sounds like a simpler way to build Wizards, not much more than that. MS's solution to general codegen are things such as CCI (http://ccimetadata.codeplex.com/ http://ccimetadata.codeplex.com/).
- spamizbad 15y agoI disagree. MVC is quite good, but as both a Django and MVC developer I'm still more productive with Django. Certain niceties of MVC break down once your project falls outside of the mold of a cookie-cutter CRUD app interfacing with a 100% Microsoft ecosystem. People have levied a similar criticism against Django (once you color too far outside the lines, things get hard fast) but with MVC it can creep up on you much faster. MVC shines if you treat it like a lightweight MVC framework and don't get caught up in doing things the "Microsoft" way -- this is massively counter-intuitive to anyone coming from a Python or Ruby background, who prefer to code in an idiomatic way by default. You can take advantage of its powerful routing system, various helper functions, and a decent templating language: Razor - which I hope Microsoft keeps and doesn't replace like it did to the 2 or 3 other templating syntax systems that proceeded it.
- silverbax88 15y agoI find that Django doesn't even come close to MVC. But as to your second point, doing lightweight MVC (not the junk that MS has offered as examples) with Razor is by far the slickest, fastest development environment I've worked with for web.
- kenjackson 15y agoCertain niceties of MVC break down once your project falls outside of the mold of a cookie-cutter CRUD app interfacing with a 100% Microsoft ecosystem. I guess my question would be, what's an example of this. I find MVC with Razor extremely productive. I rarely even think of a framework when I'm using it -- I'm just typing what I'd like to make happen (for the most part). And for me the tooling makes my life much easier. I know this is controversial statement for Django/Rails devs who are pretty much vi/emacs devs, but simple things like being to jump between quickly seeing all defs/uses/implementations of a method/property/class/assembly is extremely useful. But I hacked away on vi for almost 20 years, so I realize its allure.
- spamizbad 15y ago> I guess my question would be, what's an example of this. One example that stands out to me in the whole concept of strongly typed views. Nice in theory, but ultimately tightly coupling your view to your model (or your model to your view, depending on your perspective) is very Webforms-ish. You can tell they put in place these practices to ease adoption among the current crop of vanilla ASP.NET developers. Another example is being able to quickly bake-in full-text-search into your application. With Python/Django you can use something like Haystack. Ruby has equivalents. With MVC, what are your options? Do it by hand with Lucene.NET? Get there a bit faster with .NET connector for Solr? This is more of a .NET ecosystem complaint, but ecosystems matter. > And for me the tooling makes my life much easier. I agree. Working with Visual Studio is great. With that said, I missed being able to "edit on the fly" my Python code and immediately pop into the browser to check, so now I just have a build script that builds and stages my projects automatically on an IIS server so I can accomplish what I got for free in Python/Django.
- smhinsey 15y agoI think strongly typed views are an area where things fall down due to lack of guidance rather than design. I don't think a view model is the same thing as the model in MVC. In my MVC apps, I use them pretty much exclusively, but they exist completely independently from my application model (they represent compositions thereof). This really only makes sense in apps of a certain scale, though, so having the option not to use them, or to use dynamic views (not sure if they count as strongly typed, but they are a weird middle ground) is definitely useful.
- raarky 15y ago"and don't get caught up in doing things the "Microsoft" way" agreed. I've been an ms dev for a while but over the last couple years have branched out into python. Since then, I've really started to hate writing "best practice" code in .net where you get lost in a sea of interfaces and over-used design patterns.
- profquail 15y agoT4 is used more for codegen; or, you can write a code-generator plugin for Visual Studio to handle a specific type of code generation (e.g., where you can expand a file in the solution/project pane and see the 'code-behind'). Most of the codegen for MS tools actually generates code in whatever language your project uses (like C#). CCI is a library for manipulating .NET bytecode, and is much lower-level than you'd normally need (or want) to deal with.