locked
Planning an architecture (Azure, Asp.Net MVC) RRS feed

  • Question

  • User1064071399 posted

    Hi,


    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….


    • Front End:  XHTML, CSS, JavaScript (jQuery & jQueryTools), AJAX
    • Web Client: Asp.Net MVC 2
    • Domain Model: C# Class library with POCO , interfaces and implementations (will be using Castle Windsor as IoC)
    • Data Access Layer: Entity Framework mapping my domain model and data storage
    • Azure Storage:  … where that book of mine

    Any advice, thoughts and critic will be welcome.

    Thursday, April 29, 2010 4:07 AM

Answers

  • User-1704326042 posted

    Hello Kronkoster,


    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. 

    MVC has been difficult for some webforms developers, as it demands starting almost from scratch for javascript and CSS, while WebForms abstracted a lot. Mainly, a good grasp of JQuery, AJAX client library, and javascript are extremely important for good UI. 

    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://forums.asp.net/t/1501695.aspx

    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.

    And finally,

    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.

    http://www.polymorphicpodcast.com/shows/portableareas/

    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.

    Best Regards,

    http://oudinia.blogspot.com

    http://oudinia.wordpress.com

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, April 30, 2010 5:12 AM

All replies

  • User-952121411 posted

    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:

    http://msdn.microsoft.com/en-us/library/dd163896(v=MSDN.10).aspx

     

     

    Thursday, April 29, 2010 9:56 AM
  • User1064071399 posted

    Hi,

    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)

    Thursday, April 29, 2010 10:17 AM
  • User-1704326042 posted

    Hello Kronkoster,


    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. 

    MVC has been difficult for some webforms developers, as it demands starting almost from scratch for javascript and CSS, while WebForms abstracted a lot. Mainly, a good grasp of JQuery, AJAX client library, and javascript are extremely important for good UI. 

    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://forums.asp.net/t/1501695.aspx

    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.

    And finally,

    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.

    http://www.polymorphicpodcast.com/shows/portableareas/

    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.

    Best Regards,

    http://oudinia.blogspot.com

    http://oudinia.wordpress.com

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Friday, April 30, 2010 5:12 AM
  • User1064071399 posted

    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.

    Thanks again

    Friday, April 30, 2010 1:12 PM
  • User-1704326042 posted

    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 :)

    Friday, April 30, 2010 1:16 PM