With this framework being predominantly a Microsoft framework I was wondering if in the future it would be worthwhile building a template for Razor Web Pages?
Not looked into it too much myself but I would imagine there would be some effort involved to take the current Abp Controller logic into some sort of an Abp Page base class.
Just asking for people personal opinion - no right or wrong here :-)
It's a big effort for us to convert all templates (especially for asp.net zero).
We still want to wait for Razor Pages approach to be more mature and accepted by the community. Then we will have a decision about that.
So, for now, no clear answer :)
Related
For an upcoming project, I am looking into MVP as an option over MVC. I am highly familiar with and like MVC, and am merely trying to see if I will gain anything using MVP.
What I gather about MVP is that it uses the ASP.Net view engine/MVC# (which I don't particularly like) that uses the ViewState - adding a bunch of extra content to a rendered web page, and not built in routing functionality (can be written in separately into the Global.asax).
MVC/Razor on the other hand, renders very clean HTML.
Certain articles, such as this one seem to lean towards using MVP for multiple views, however in light of MVC3 with jQuery Mobile, there are some fantastic things that can be accomplished with this MVC.
How do these compare to what is currently available with MVP? What are some pros/cons or potential pitfalls of using MVP over MVC?
I am also considering using an existing MVP application to expedite development time.
I know you will cringe at the following, but looking for options:
While this app offers all the required features, if implementing this solution, how difficult is it to tie in additional MVC applications (I know that looks ugly)? If this was something that we had to consider (combining both), would it be best to wrap the application in MVC (routing) and have the MVP app contained inside?
The reason for this is a staggered feature update process, where the requirement is to implement a new feature (which is built using the MVC framework; the rest of the system is not). Future plans are to completely change the current framework to either MVC or MVP.
Thanks.
You seem to be confusing patterns with frameworks here.
Both MVC and MVP are design patterns, ASP.net MVC and MVC# on the other hand are frameworks that implement the MVC/MVP design patterns.
There is a massive confusion and lots of conflicting information on the web about the difference between MVC and MVP patterns and infact Martin Fowler the guy who made MVP popular since "retired" the pattern in favour of 2 new ones. See here
Both patterns are there to aid separation of concerns that is for sure, but other than that there really isnt a lot of difference between them, the only thing I have found is that MVC has a controller per widget on the screen where as MVP is one per screen although even this rule is violated if you have a complex screen. I am still unsure and use the terms interchangeably myself.
The one thing I see over and over is that in MVP the view is responsible for creating the presenter, however this is not part of the original design. It appears to have arisen from the fact that older web frameworks such as asp.net webforms were page centric. You had no way of changing this and so it was the page (view) that created the presenter. Basically the framework is getting in the way of the pattern and so a hack was made to shoe horn it in. Unfortunately this seems to have become the defacto way of describing MVP.
Basically my wall of text above is trying to say that if you want to do MVC properly use a framework designed to do it, ASP.net MVC is a good choice, it is part of the MS stack, well supported (MVC# hasnt been updated since 2008) and if you are already happy with it the loss of productivity trying to learn something else isnt really worth it imo
I am looking for a sample ASP.NET MVC3 N-Tier application that demonstrates best practices (uses Domain Driven Design and Entity Framework 4.1 Code first). I found the following. which one do you recommend out of these (or any other one not in this list)?
http://efmvc.codeplex.com/
http://prodinner.codeplex.com/
http://www.dofactory.com/Framework/Framework.aspx (not free)
I was in the same position not long ago.
The things you linked are OK, but certainly not enough on their own.
I find this topic lacking in the free resources, as it is quite big and needs good organization and breadth. On the other hand, there are good resources if you are willing to pay a little.
These are the resources I used:
PluralSight - training videos. ($30 per month, quite worth it, not affiliated, but a subsciber)
Here are the courses that are great on the topic:
Principles of Object Oriented Design - by Steve Smith, he is a great lector.
Design Patterns Library - over 10 hours of videos on design patterns. Can't compare them to DotFactory, but they are very well done.
Inversion of Control - what the name says, important topic in depth.
There are also lots of stuff on TDD, MVC, EF etc. All worthy topics.
Books on Kindle (I haven't been reading lots of books, but Kindle really revived my passion for written knowledge)
Professional Enterprise .NET
Microsoft® .NET: Architecting Applications for the Enterprise
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET
Have you seen the following projects? They also have the source code that they can have complete documentation.
http://microsoftnlayerapp.codeplex.com/
http://www.nopcommerce.com
Best practices are always subjective. Your application may require DI and as well as Interceptors but sample apps are relatively small and putting anything into there turns out to be ridiculous. Still, I would suggest you to go through MVC Music Store. It has pretty good implementation and a very good sample.
http://mvcmusicstore.codeplex.com/
Although this post is old, But I have had same problem to find a good and modern pattern for a good ntier application. After I goggling for some hour, I Found Onion Architecture By Jeffrey Palermo. It is a must read article. here: jeffreypalermo.com/blog/the-onion-architecture-part-1/
By using this article and using some other researches I Made a template (Example) of this architecture that uses Entity Framework 6.0 and Ninject Dependency Injection 3.2.0
NTierCSharpExample
I this template: Center Layer Is Domain Layer. Then Service Layer that is a bridge between presentation and Data Layer.
For simplicity I used console app for presentation but you can simply remove it out and plug in a new asp.net mvc 5 application or any other presentation app you want.
Funny this kind of question comes up couple of times per week at least recently.
What I can say, only about the layering of the different projects, accordingly to my experience and feedback I've got, is to check question and my answer here:
MVC3 and Entity Framework
RKP this is not answering all and completely to your question, is about layering the architecture and some ideas on why only (see comments under my answer).
I make a good pattern based on EF 4.1 and MVC3:
MVC3 and EF architecture
good luck
I'm wondering just where a CMS - out of box like SiteFinity, Sitecore, SharePoint, DotNetNuke, etc. - fits with the MS MVC Framework (1 or 2). The MVC Framework presents a lot of benefits for developers and for overall SEO and SEM value, while most CMS platforms require a lot of the WebForms "stuff" that comes with ASP.NET. Thoughts? I'm trying to figure out if these two pieces fit well together for future projects, or if they are disparate concepts?
BTW: I realize that a custom CMS could work, however that can require an awful lot of extra time than just setting up an instance of an out of box CMS.
MVC is a pattern. There are CMS systems that are webforms-based, like DNN, and ones that are based on MVC, like Orchard. Either framework (Webforms or MVC) are equally capable of supporting a CMS. Your choice should be based primarily on the one that offers the features you want. If you expect to extend it with plugins, and you're already familiar with Webforms, go with the one you know unless you want to learn MVC.
My thoughts are you very limited in the tools/components available to you at present when you choose to go the MVC route. Although there are a few CMS components out there for MVC they lack maturity IMHO. I believe in a couple of years when MVC has more maturity you'll be able to achieve the speed and sophistication of application development that is close or on par with Webforms.
Right now though if you have a lean project budget, and you need sophisticated functionality (i.e. CMS); Webforms still remains hard to beat when you have those constraints.
We are planning to start a new Sale Management System which will have about 12 subsystem.
We will use MSSQL2008 as a database.
We have got custom framework for ASP.NET that was built about 3 years ago which is not MVC type... And i am planning to move to MVC2 Framework.
My Questions are
What will be the big advantages of moving
to MVC2?
How about the learning curve for MVC2 and will there be any good
guided study flow?
We are planning to use Multirow (Instead of Grid View), inputman (For function key event and validation) from grapecity and ActiveReport.. Will they be easily fit into MVC2 Framework?
Well, you have some good questions, but I think you have abused the question asking here. You will find that people will be more apt to answer if you divide your bullets into their own questions.
Advantages of MVC? Well pick up any MVC book and find those. IMHO however it lets you get to more pure views. It allows for separation of the main components of MVC (Model View and Controller) which allows you to test them. For me its more than that. I like how it allows for more control over what is in the view. I get so sick of the ASP.NET rendered controls that break javascript.
Learning curve? Well that all depends on how well you know HTML, Javascript, AJAX, and JSON. If you dont know them well at all, you will have a bigger curve. Now AJAX and JSON are not a must, but they will make it work better. JQuery is MVCs best friend, learn it and live it.
I know this is a duplicate kind of question.
I have worked with ASP.Net and ASP.Net MVC 1.0. I never really got a chance to get into ASP.Net AJAX.
My question is it really worth to invest in learning ASP.Net AJAX 3.5 or 4.0 given the fact, I have hardly used it ?
Please let me know your advise.
EDIT : - Thanks all for your response. Robert\Justin\etc have provided valuable insight.
I have a copy of ASP.Net AJAX In Action in my office library. My guess this book should be pretty enough for me, though It was for ASP.Net 2.0.
Do I need to invest in books\Time for ASP.Net AJAX 3.5 or 4.0 ?
There are so many Ajax Libraries out there, is not even funny. Here is a good link on what is out there.
Since we already use ASP.net, I made sure to spend a little bit of time familiarizing myself with asp.net ajax. Just enough to do the basics. However, for everything else, we use jQuery, which, by the way, integrates nicely with ASP.Net. Have you ever wondered why the ASP.Net team has started supporting jQuery: intellisense, included scripts, contributing to the project, doing demos with it, etc...
So here is my 2 cents. Look into the basics in asp.net ajax but focus your efforts into, IMHO, a better library like jQuery.
Good luck!
-D
Are you interested in it? Do you think you might want to use it someday for something? Do you want to make sure you're equipped to use the best tools for the problem at hand?
If you answered yes (to any of them), you should invest the time to learn it.
You can never hurt yourself by learning new things (as long as you learn how to properly apply them).
ASP.Net AJAX is probably not worth learning if you're going to stick with Asp.Net MVC going forward. Or to put it another way... You can spend your time and resources learning something else.
It's not that it's a bad framework, it's good. But it's designed to make javascript familiar to .Net Developers who are used to the Webforms model.
I suspect that MS has de-emphasized the role asp.net Ajax will play in the future.
ASP.net ajax is a pretty terrible library, compared to the alternatives. The only reason to use it is if you are using the asp.net ajax controls.
Yes. Learn as much as you can as often as you can. While you may never use these skiils directly, the experience and breadth of knowledge will help you in any situation.
If you have an understanding of ASP.NET already, I'm assuming you also understand JavaScript and etc. As a result, AJAX wouldn't buy you that much (unless you're on a project that requires knowing it). If you plan on being a web developer for any length of time, I would say that Silverlight and/or jQuery would be much more valuable than Ajax.