|
I dislike MVC, because it is unnecessarily complicated, and will take (me) longer to develop and maintain.
But if you start today, MVC with Razor is the way to go. Everything else is just outdated. MVC razor is the most recent standard for working with asp.net. (at least it was two months ago, gosh things change rapidly)
Leo
|
|
|
|
|
Leo Muller Rap wrote: it is unnecessarily complicated, and will take (me) longer to develop and maintain
Uhhhmm. I think this is just your opinion. I've worked many years with web forms, before moving to MVC.
MVC is not complicated, once you grasp the basic principles it is much easier to work with. No funny business trying to figure out how to make a web control generate an HTML that works. It's much less error prone.
It provides separation of concerns by separating the view from everything else. This makes it much easier to maintain as we can clearly separate logic from user interface. Which leads to a few more advantages:
- Unit test your user interface
- You can have a team specialized in UX working in the project and they do not need to know anything else but HTML/CSS, etc to contribute, while you work in the logic at the same time.
- You can control much better the HTML output to deal with some specific scenarios.
After my intial learning curve, all development I've done in ASP.NET MVC has been much faster than WebForms. I also spend time a lot less with bugs that are hard to work around in Web Forms.
Since the user interface is not bound to the framework, it integrates much better with the myriad of tools and frameworks available on the web.
And finally, thank the Lord Almighty, we don't have to deal with update panels anymore.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
Hi Marc,
as it has been mentioned here most probably ASP.NET MVC seems a way to go.
The ASP.NET webpages is slightly lighter and not that structured as MVC (which could be good if you want to ship something quickly that is pretty simple).
ASP.NET webforms are still there but it is MVC that is catching a big momentum (if talking about Microsoft). Other non MS frameworks I heard of (but never touch them), your lovely ruby on rails and maybe java spring...
Some people here are mentioning WebAPIs with rich client side javascript frameworks (AngularJS, typescript, coffeescript, etc.). I would use these if planning to do some apps on mobile devices. I would not bother if targeting purely website interface. Well, I think javascript is unavoidable today, but WebAPIs are not always needed I think. But then again, if you want to play with the techno, this can be good opportunity to lay the hands on
Last thing - the database. ASP.NET MVC seems to be working fine with multiple db systems (MySql, MongoDB) but if you are Microsoft guy, I think there is no reason to go further then one of MS SQL mutations.
However if you are planning to use some ORM frameworks (Entity Framework, NHibernate, etc.) one thing to decide first would be the famous discussion Code First - Model First - Database First approach. Recently it seems that trend is Code First approach. The other two seem to me slightly less popular on discussion boards nowadays.
Just my 20p to discussion
|
|
|
|
|
Bajaja wrote: I would use these if planning to do some apps on mobile devices.
That is the intention.
Bajaja wrote: one thing to decide first would be the famous discussion Code First - Model First - Database First approach.
For the back end, I prefer my own database solutions, but yes, there's no reason not to go with SQL Server, as it's provided automatically by any number of ASP.NET hosting sites.
Personally, I don't buy into any one of those paradigms as a fixed law of coding, and I rarely separate "model" and "database" - to me, they are both the same thing. So, depending on what I need to prototype, I might work on the UI first or the model first or do some general code stuff.
In this particular case, spending some time thinking about the UI and the model is what seems most reasonable first, as I want the site to be able to handle DPW's from more than just one state and municipality. I also want to consider how that affects users per DPW, administration, state-wide admin, and possibly country-wide admin, etc. Getting that stuff "right" from the get-go will mean a lot less BS "refactoring" later on.
Bajaja wrote: Just my 20p to discussion
Well worth it! Thank you for the input.
Marc
|
|
|
|
|
I want to add a few things to enforce what a few already have said and add my little two cents:
UI:
1 - Yes, definitely MVC/Razor. You will learn the delight it is to work with when you get there. Separation of concerns, unit testable UI, complete control on the HTML generated.
2 - jQuery is a must, typescript is great also to do Javascript with OOP (including generics). AngularJS will be very helpful, but I think you can leave that for a later project if you feel overwhelmed.
Database:
1 - I would definitely go for entity framework. It's very mature and if used carefully will save you a lot of development time and will not be a problem performance wise. Do go for code first. Of course you should experiment with the other ways of doing EF, but I would prefer you were spared of the problems of going the other ways. I also recommend using migrations with EF CodeFirst.
Services:
1 - WCF is the way to go, but you probably know that already.
I think these are the basics to get started. Enjoy.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
Fabio Franco wrote: You will learn the delight it is to work with when you get there.
I hope so. I've done a lot of RoR so a lot of Razor looks familiar.
Fabio Franco wrote: jQuery is a must,
Indeed. I've played with it a little, again in the RoR environment.
Fabio Franco wrote: AngularJS will be very helpful, but I think you can leave that for a later project if you feel overwhelmed.
That's the conclusion I came to last night. I'm having a hard enough time finding a decent tutorial on getting Bootstrap folded in. Found this[^], but I may be making this too complicated -- in RoR, it's a simple matter of dropping in the css and js files into the appropriate folders.
Fabio Franco wrote: I would definitely go for entity framework.
Well, in this department, I have my own DB frameworks that I prefer to use.
Fabio Franco wrote: Do go for code first.
Hmm, I have some moderately complex modeling issues to consider, such as supporting DPW's in different municipalities and states. I prefer to have a solid model in place, perhaps even with some "scenario tests" to vet out the design, before doing too much coding / UI development. However, when the model is obvious, yeah, I often end up prototyping the UI first.
Thanks for the great feedback!
Marc
|
|
|
|
|
Marc Clifton wrote: Found this[^], but I may be making this too complicated
We may be talking about different things. AngularJS and knockout is about databinding MVVM way, that can improve productivity and maintainability when working with data models on the client side. The twitter bootstrap works like that in with .net mvc, it is as easy as dropping the js and css. If I am not mistaken it is even part of MVC project template already. If not, you can set it up easily using the nuget package manager. If you don't know about nuget package manager, please look into it, it is a life saver.
Marc Clifton wrote: Fabio Franco wrote: Do go for code first.
Hmm, I have some moderately complex modeling issues to consider, such as supporting DPW's in different municipalities and states. I prefer to have a solid model in place, perhaps even with some "scenario tests" to vet out the design, before doing too much coding / UI development. However, when the model is obvious, yeah, I often end up prototyping the UI first.
I think we may be talking about different things again. Code First, is and Entity Framework style of mapping Object Entities to database tables. It's like having a object oriented database. You can define complex models and relationships (including inheritance) with EF Code First that will later translate to a database. It can represent your domain model, although it's not always recommended, depending on your architecture. UI Model prototyping is something else, this is MVC's M stands for. It's something else. EF Code First entities are another layer, either on the data layer, or domain layer.
Marc Clifton wrote: Thanks for the great feedback!
Glad to help
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
As others are saying, MVC/Razor, jQuery, Bootstrap.
I don't have experience with Telerik's controls in the MVC world, but I can say their .NET controls are execellent, with great support both from the user community and Telerik themselves.
|
|
|
|
|
Microsoft stack is: ASP.NET (with or without MVC), Razor, IIS and Entity Framework/MSSQL. But what about vNext? Seems to me that vNext is Microsoft's answer to Nodejs and looks to be a future 'upgrade' for ASP.NET (BTW Nodejs isn't written in Javascript, it's written in C and just translates JS). IIS is a slippery pig as far as I'm concerned but I still use it. The Javascript stack is: Angularjs (which is amazing), Nodejs (usually with Expressjs on top) and either SQL or Mongodb for the db. Knockout and especially Breezejs seems to be the ORM of choice. As far as open source goes, the creme de la creme rises to the top and isn't as 'open' from a development perspective as you might think (being controlled by the original authors which is now often Google, Amazon, Sencha, MS and a small group of super guru's). Open source it not a free for all. Typescript is a nice enhancement to JS but I don't like working with anything that's 1.0 (for production). I've been developing in C#/.Net since 2001 and now currently learning the Javascript stack and it's been PAINFUL! But, Javascript isn't a toy language anymore and is the language of web development going forward, just ask Microsoft! Cheers to all.
|
|
|
|
|
I'd start with "designing" (wire framing) the thing first before deciding on a "technology stack".
Didn't see any thoughts on "hosting" either. It may be "pro bono" but at some point there's going to be a cost of ownership.
Maybe there's a "SharePoint Online" in your future.
|
|
|
|
|
Gerry Schmitz wrote: I'd start with "designing" (wire framing) the thing first before deciding on a "technology stack".
Good point, and yes, that's my plan.
Gerry Schmitz wrote: Didn't see any thoughts on "hosting" either. It may be "pro bono" but at some point there's going to be a cost of ownership.
True, but from my prior research, it looks like I can find hosting for around $10/mo, which is pretty darn cheap, and given that the initial # of users is going to be about 10, I'm not too worried about performance at the moment.
Marc
|
|
|
|
|
It wasn't so much the "$10/mo" that I was thinking of (there are even cheaper options around).
It is the support and maintenance that comes afterwards.
While you may become a master of all the components you plan on incorporating, the fellow(s) that come after you may not be.
It appears that you are not being asked to follow any type of corporate "standard" (assuming there is one). Corporate standards usually imply some sort of internal skill sets that can later be called upon, if necessary.
An application that is not or cannot be supported, maintained and updated when necessary will rapidly fall into disuse.
(I like / hope to think the stuff I develop winds up having a long life).
That said, it's wonderful to be in a position where one has control over most, if not all, aspects of a project.
|
|
|
|
|
Gerry Schmitz wrote: It is the support and maintenance that comes afterwards.
Indeed, and what I'm hoping will result from what is essentially a prototype (or, perhaps a better word is "pilot program") is the value will be seen and there will be actual funds allocated for support and maintenance.
And yes, I hear you on the standards, etc.
So, it'll be interesting to see how this evolves over the next 6 months or so!
Marc
|
|
|
|
|
This isn't a programming question (so I'm not posting it in the questions forum), just a rather interesting side effect of using OneDrive, so I'll just mention it here, to see if anybody else has seen this, or knows how to prevent it:
When I update a document at work, and upload it to OneDrive, it replaces the earlier version of that file. That's fine. But when I get home from work, I find the old version of the document (the one that has been replaced) by in my laptop's Recycle bin?
Is that "as designed" or...???
|
|
|
|
|
B. Clay Shannon wrote: Is that "as designed" I'd call it "weird", and perhaps "worrisome".
When you're working on a file stored on a remote machine, you should not have access to the remote machine's recycle bin functions (which is essentially what's happening).
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Google drive does the same thing, if I recall. So I vote for WAD.
|
|
|
|
|
WAD? I binged it, but nothing here:[^] seems to make sense.
|
|
|
|
|
It's on there
"Works As Designed"
|
|
|
|
|
Just double-checked on Google Drive, and it *doesn't* do it that way, so I retract my vote and change it to "huh, weird"
If I delete a file from GDrive on Machine A, it will end up in the recycle bin on Machine B, but edits just flow through without any recycle bin shenanigans.
|
|
|
|
|
|
|
Romanes eunt domus!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
People called Romanes, they go the house?
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
... now write it out a hundred times. If it's not done by sunrise, I'll cut your ...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Right. Now don't do it again.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|