What type of Software Architecture should I use?
I am working on a web application for my project. In this application the user has to upload the code of their object-oriented software to my applica开发者_如何学Ction which then measures the values of coupling and cohesion for that software.
I am really confused about what type of architecture I should use while designing this application. Would MVC be a good choice?
I agree with the two comments you got from Boris and David, and I'll add to that.
If it's a largely readonly site then MVC should be fine, but if there's a lot of form-filling you might want a more classic ASP.NET type of approach. I say this based only on info I've picked up elsewhere - not first hand.
"Architecture" goes way beyond MVC vs. Classic ASP.NET though; when you say "upload" the immeadiate inference is that it's a web-based app, which woudl suggest MVC / ASP.NET, but that might be jumping the gun. If the core of the app is a set of algorithms that analyse code then the door is still wide open as to how you architect that.
- Who is your user base and where are they located?
- How do they like to work, what's their context? (Are they Apple users who expect an iPhone app for easy upload?).
- How stringently do you need to protect your IP?
- What's your pricing model? Do you even have one?
- How much code are people going to be wanting to analyse.
aspnet MVC is only one part of your architecture - most likely the web/UI tier. Like others have said, since the function of your app promotes the idea of decoupling then perhaps between the alternatives of classic aspnet and aspnetmvc the choice should be mvc.
The question may be better worded "what technology/framework can you suggest? [for x functionality]". If you want the benefits of a web app then i'd certainly suggest mvc over aspnet but maybe a web app is not what you need. Like Boris said, perhaps a plugin tool for a development environment is more appropriate since it seems likely to give the user a better experience - ie. rather than the user packing up all their code and uploading it for analysis, a single button click in the IDE makes the whole thing less painful as a plugin. Who knows?
Perhaps if there is a need for the upload function outside the development environment a multiple endpoint approach may be warranted. perhaps the plugin(s) could connect to a MVC web service and the same MVC app could also expose a handy UI for uploads thus reducing double work (DRY)? ..just ideas
精彩评论