Last post Apr 30, 2010 01:16 PM by formationusa
Apr 29, 2010 04:07 AM|krokonoster|LINK
I’m supposed to be designing solution architecture for an upcoming project (clearly the most advance I ever did and guaranteed to drive me nuts over the coming months). I'm trying not to let my knowledge shape the design, and rather create a solid, maintainable
design and fill the gaps in my knowledge later.
Was hoping to hear what others think and help me shape this.
In a nutshell it will be an asp.net mvc application running on the azure platform (so I’ll be using azure table services for data storage and blob services for file services).
Been nutting out Entity Framework 4 (don’t know NHibernate at all) over the past few days and figured I’ll use that in the data access layer (c# class library) to map my domain model (another c# class library) to the data storage (still no idea how azure storage
work, but will get to that).
My WCF skills are shaky, but I’m thinking of exposing data via services, though right now I cannot think of that being that useful….
Any advice, thoughts and critic will be welcome.
Apr 29, 2010 09:56 AM|atconway|LINK
Well I can touch on a few points about Azure. Many do not need to have their data in the cloud because a lot of people that work for companies already have dedicated servers. Therefore using a platform like Azure is not the way to go, especially if the
company does not want their data outside their own walls. However it is a great pay as you go solution and a much cheaper route for small or start up companies that do not have a lot of money to create and maintain a whole bunch of servers. With that said
I am sure you have already done the research and know its advantages and disadvantages.
Right now as far as I know Amazon, Google, and Microsoft are the (3) leaders for Cloud Computing; Azure being the OS for MSFT services. Another important factor is data in the cloud in in Blobs and is not relational. Therefore I do not know how well an
ORM tool like EF will work with Azure. Someone else may be able to address that.
VS.NET probably has the best project templates for creating an Azure application. Programming against the cloud is different than a traditional server application, so I would begin sifting through the following link:
Windows Azure Platform:
Apr 29, 2010 10:17 AM|krokonoster|LINK
Thanks for the reply.
However the main technologies to be used (Azure and MVC) was decided by the client. They want it in the cloud (so I just will have to nut that out) and want it done using MVC (Happy about that...I gave WebForms the boot long ago).
My question is not about getting the hang of technologies to be used, but rather how to plan and design an architecture. To be honest this is only my third large and complex application using .Net (had several with PHP and before that, long ago, VB6 Desktop)
and the first ever I am the one that are to put together an architecture plan based on the clients needs (business specs) and the main technologies they want (Azure/MVC...the rest is up to me)
Apr 30, 2010 05:12 AM|formationusa|LINK
It's a good choice between MVC and Azure. To a .NET project, there are many approaches. I'll give you some insight, from my experience (6+ years with asp.net webforms, MVP, and MVC)
.NET is a great platform, and very rich in technologies. Microsoft makes sure the door is open to anyone in order to make the change without leaving behind his technical abilities. since your background in technologies is from php, then you are strong in
developing on the client side, which is extremely important for MVC.
That's for UI, as for Business Logic, you need two main components (this would be your model part), choose an ORM, Entity Framework or nhibernate, have patience with learning how to use LINQ, and good techniques for developing good business logic.
Lately I asked an important question, and found two answers, about asp.net MVC and Webforms use, here are the links :
http://vimeo.com/10373753 (this link is a video of a presentation of Scott Hanselman, in which he talks lightly about the fact that a pattern to choose should not be absolute MVC or WebForms.
From my experience, good project management never fails. using Scrum or similar methodology is a good thing, but not to overdo it, as it better to be flexible.
Main issues found are :
-skilled developers with the technology.
-combine developers and their skills in a complementary manner
-Not to block other tasks, when one takes too long in terms of research
-Not to go too far into applying the perfect principles, but instead adapt them.
-one pitfall, do not use TDD for CRUD operations (a suggestion not absolute), unless necessary, as it takes a lot of time, and leaves behind some main development.
I personally focus on getting video training, that way, I have expert advice all the time. One of my favorite source is a leader in .NET training (http://www.pluralsight.com They have cloud and asp.net MVC training, as well as Entity Framework and LINQ,
TFS (hours and hours of strcutured videos from the best in the field)
I also use learnvisualstudio.net since their first year.
for Azure, it's still new to me, I do have some ideas, but have not tried it yet.
let me know if you wish to go further on this subject.
Apr 30, 2010 01:12 PM|krokonoster|LINK
Thanks for your insight formationusa
Lucky I have been using MVC (Asp.Net) since it's beta days. Some nice points in there and I'll be sure to read your reply a few more times.
Apr 30, 2010 01:16 PM|formationusa|LINK
Best of luck krokonoster :)
welcome anytime. And yes, it is great to get ahead as you did on asp.net MVC :) you'll like it better than webforms for sure :)