Last post May 17, 2012 04:27 PM by vallosdck
May 16, 2012 01:19 PM|vallosdck|LINK
I have a great opportunity at my job to rewrite an entire enterprise application. I'm wanting to take everything I've learned at previous jobs and apply them on this new application. At my last job, I was introduced to some really great best practices in
architecture design. I'm looking for opinions/pitfalls/flaws/etc in my proposed design. The worst thing about starting a new project for me is trying to decide the best approach for implementation. So far, this is my proposed design:
I've worked with most of these in the past. NHibernate, Entity Framework, Ninject, MOQ are new to me, but I have used Unity in the past. Let me know your thoughts. Feel free to point and laugh, give constructive criticism, ideas, what ever. I'm really wanting
to build the best application I can.
Currently I'm reading Pro ASP.NET MVC 3 Framework. I'm also taking various frameworks and setting up test environments.
You're thoughts are appreciated.
May 17, 2012 03:32 PM|atconway|LINK
ASP.NET MVC 3 or 4 Jquery or YUI
Fine choices. As you know jQuery is heavily integrated (but easily removable) from MVC3 and 4 and is a good choice for out-of-the-box validation and other client scripting needs.
WCF Fluent NHibernate or Entity Framework
WCF is the way to go with services, and if you have not used an ORM before I would lean toards EF for the fact that it is Microsoft's product and you will find a ton and a half examples and support directly related to MVC and the technologies you
wish to use. NHibernate is a fine choice and matured prior to EF, but unless you are carrying over a skillset for it, I would go with EF.
Yep, good choice.
Ninject MOQ NUnit
Ninject or Spring.NET are both good IoC containers. Moq or Rhino Mocks are good mocking frameworks to use in conjunction with your Unit Testing framwork. NUnit is a great choice and there are several others including the built in Visual Studio Unit Test
as well if you have VS.NET 2010 (except visual web developer version).
All the open source or 3rd party frameworks for the different categories you listed above are all fine and many are raved about all throughout the community. My advice on any [technology] that you are using for the 1st time - start with Microsoft's version
1st and gain some experience. It is easier to state: "I have 5 years using ORM's and I don't like EF because of 'X'" as opposed to just randomly picking one. That's why I leaan toard a MSFT product 1st, and then branch out if there is a need or I discover
something better that their implementation does not suffice. Really this is akin to picking ASP.NET MVC over Ruby on Rails. Go with the MSFT approach 1st, than branch out if desired.
May 17, 2012 04:27 PM|vallosdck|LINK
Thank you for your opinion! I really didn't think about it, but it does make sense to go with microsoft first due to the support. At first, I found it a bit daunting looking at the best implementation, but after looking into each of them individually, it
seems a lot more managable.