locked
To start rebuild for a new C# Web Application nowadays.. RRS feed

  • Question

  • User-1233366254 posted

    We must start a new C# Web Solution. Project will consume a SQL Server Database for Data. 

    We must choose Architecture, Framework, APIS, Libraries and Controls to launch the new project. What would you use to speed up this project, to guarantee a solid technology + fast development nowadays?

    The current solution uses: 
    - Microsoft.ApplicationBlocks.Data and
    - N-Tier (Multilayer) Architecture proposed by Microsoft-Duwamish Project:
    Web Layer | Business Facade Layer | Business Rules Layer | Data Access Layer

    We are thinking about buying: DevExpress, Telerik or some like this packages to speed up programming controls, but we heard about Backbone and other approaches as well.

    Thanks a lot in advance,
    Louis.

    Tuesday, March 1, 2016 3:59 PM

Answers

  • User281315223 posted

    What would you use to speed up this project, to guarantee a solid technology + fast development nowadays?

    Firstly, there is nothing that you can simply purchase to guarantee that these types of requirements will be met. Any architecture, patterns, libraries and other tools all have the potential to be used incorrectly (or at least not to the fullest of their potential) and result in less than stellar results.

    It's difficult to answer this type of question simply as we don't really know much about your project or application. I can see that you seem to have a rather extensive architecture with multiple tiers and layers, so you might want to evaluate if all of these are entirely necessary (as unnecessary complexity can often slow things down and make maintaining the project a bit more difficult). If you are building a large-scale enterprise application, then you might have needs that require such, but for a simple web application that interacts with an SQL database, those might not all be required (or at least not to a large extent).

    We are thinking about buying: DevExpress, Telerik or some like this packages to speed up programming controls, but we heard about Backbone and other approaches as well.

    I've had experience with DevExpress and Telerik in the past and I can certainly vouch that they create some stellar third-party components / products. If you are at all thinking about building these types of things on your own and you can afford to use them, it would speed up that aspect of your project. They are both well maintained and trusted component vendors and they offer solid support and documentation as well.

    I can't speak to Backbone too much as I haven't used it. But it is a Javascript framework, so there would likely need to be some familiarity with Javascript in general if you plan on using it.

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, March 1, 2016 4:09 PM
  • User281315223 posted

    Choosing Duwamish architecture and Microsoft.Data.ApplicationBlock were bad decisions since both approaches didn't had future. I agree also it has too much layers complexity.

    We have all been in similar situations to this one, don't worry :)

    Our interest is to analyse today tendencies to try to select tools that will not let us hanging later. It is pretty important to speed up the development as well. Thirth party controls can help now but that is usually a sort of race with no return.

    I understand (after MVC) that: to develop server controls or user controls is not suitable anymore, but it was previously used in this project a lot, and it is also behind most of thirth party library controls.

    You are correct. MVC itself doesn't provide much in the area of "controls", which ASP.NET Web Forms developers came to know and love. It provides some HTML Helpers for handling things like creating DropDownLists, TextBoxes, CheckBoxes and other common elements, but outside of that you aren't going to see things like Repeaters just out of the box.

    This is where using a third-party vendor can really help with things if you have one at your disposal. It should greatly reduce the amount of code that you end up writing and most reputable vendors components are fairly high performant (at least for being a third-party component). They should make the project, even an MVC one, resemble that of a plug-and-play environment similar to what you might have experienced in Web Forms.

    It's worth noting that MVC does have a bit of a learning curve if you are coming from Web Forms, but it's much leaner than Web Forms was and if used properly should translate into smaller, quicker applications.

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, March 1, 2016 10:08 PM

All replies

  • User281315223 posted

    What would you use to speed up this project, to guarantee a solid technology + fast development nowadays?

    Firstly, there is nothing that you can simply purchase to guarantee that these types of requirements will be met. Any architecture, patterns, libraries and other tools all have the potential to be used incorrectly (or at least not to the fullest of their potential) and result in less than stellar results.

    It's difficult to answer this type of question simply as we don't really know much about your project or application. I can see that you seem to have a rather extensive architecture with multiple tiers and layers, so you might want to evaluate if all of these are entirely necessary (as unnecessary complexity can often slow things down and make maintaining the project a bit more difficult). If you are building a large-scale enterprise application, then you might have needs that require such, but for a simple web application that interacts with an SQL database, those might not all be required (or at least not to a large extent).

    We are thinking about buying: DevExpress, Telerik or some like this packages to speed up programming controls, but we heard about Backbone and other approaches as well.

    I've had experience with DevExpress and Telerik in the past and I can certainly vouch that they create some stellar third-party components / products. If you are at all thinking about building these types of things on your own and you can afford to use them, it would speed up that aspect of your project. They are both well maintained and trusted component vendors and they offer solid support and documentation as well.

    I can't speak to Backbone too much as I haven't used it. But it is a Javascript framework, so there would likely need to be some familiarity with Javascript in general if you plan on using it.

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, March 1, 2016 4:09 PM
  • User-1233366254 posted
    Thank you very much Rion, I agree success will not be just on any purchase. This is a large project (sql server + web, database application, medium complexity process). Choosing Duwamish architecture and Microsoft.Data.ApplicationBlock were bad decisions since both approaches didn't had future. I agree also it has too much layers complexity.

    Our interest is to analyse today tendencies to try to select tools that will not let us hanging later. It is pretty important to speed up the development as well. Thirth party controls can help now but that is usually a sort of race with no return.

    I understand (after MVC) that: to develop server controls or user controls is not suitable anymore, but it was previously used in this project a lot, and it is also behind most of thirth party library controls.

    Thank you very much once again,
    Kind regards.

    Tuesday, March 1, 2016 5:38 PM
  • User281315223 posted

    Choosing Duwamish architecture and Microsoft.Data.ApplicationBlock were bad decisions since both approaches didn't had future. I agree also it has too much layers complexity.

    We have all been in similar situations to this one, don't worry :)

    Our interest is to analyse today tendencies to try to select tools that will not let us hanging later. It is pretty important to speed up the development as well. Thirth party controls can help now but that is usually a sort of race with no return.

    I understand (after MVC) that: to develop server controls or user controls is not suitable anymore, but it was previously used in this project a lot, and it is also behind most of thirth party library controls.

    You are correct. MVC itself doesn't provide much in the area of "controls", which ASP.NET Web Forms developers came to know and love. It provides some HTML Helpers for handling things like creating DropDownLists, TextBoxes, CheckBoxes and other common elements, but outside of that you aren't going to see things like Repeaters just out of the box.

    This is where using a third-party vendor can really help with things if you have one at your disposal. It should greatly reduce the amount of code that you end up writing and most reputable vendors components are fairly high performant (at least for being a third-party component). They should make the project, even an MVC one, resemble that of a plug-and-play environment similar to what you might have experienced in Web Forms.

    It's worth noting that MVC does have a bit of a learning curve if you are coming from Web Forms, but it's much leaner than Web Forms was and if used properly should translate into smaller, quicker applications.

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Tuesday, March 1, 2016 10:08 PM
  • User-1611549905 posted

    One thing that you should look into at a fairly early stage (the earlier the better) is getting a continuous delivery pipeline in place. The idea is to go from checking code into source control through to deploying to your different environments (staging, test, production) with just a single click.

    You should also look into being able to provision new virtual servers and tear down old ones automatically as a part of this process. Tools such as Chef, Puppet or Ansible allow you to automate the installation and configuration of all the supporting software that you need.

    Take a read of Martin Fowler's website (http://www.martinfowler.com/) -- he has a lot of articles discussing the different aspects of this process in a lot of detail.

    Friday, March 11, 2016 2:09 PM