*CJ edits* Added Read More Break, and put link to follow up post regarding Ext.JS
- I'm still not have doubts about this, but I can't seem to found a bad word said about it on the internet, which leaves me to believe I might be wrong! (I know it sound unlikely!)
- The thing that niggles me is with MVC we got separation of concerns, clean coding. now the way we are creating view is putting the view logic right back into c# code, is this ignoring the MVC design pattern?
- It doesn't seem like we are keeping the view as clean as possible, although we are abstracted by and large from having to deal with it, Dose ext.js not over complicate the DOM creating numerous divs and tables for layouts? and if it dose really should we care?
- Creating Json in C# a first seem a bit messy, may be its something you get used to what are you toughs?
- On a personal level it get's me away form writing any Jquey, or getting used to html helper classes and Razor which for myself I feel I would like to be doing.
- I accept that we don't have designers and we want to achieve a commonality in look and feel of pages and controls, I am still unclear how easy or hard it is to change layouts, and how likely is it we are going to be asked to do this.
- I do feel happier about working with this after seeing that we can template out views quite efficiently thanks to Nathan template utility.
- how easy is it to debug. where have you guys found problem in the past?
- Can we easily achieve validation (like out of the box mvc validation) ?
- Are we overcomplicating things, I mean should Html helpers take care of most things and a few Jquery or Ext.js plugins cover the special cases?
If you guys are all still convinced Ext.js is the way forward that is fine with me I just think it's important we address these questions. there is also a valid point that we already have licences for that, but if we where starting on a clean slate and could use that money to employ a designer instead is the an approach we would like to have taken ?
do you think it is worth creating a couple of screens using ext.js, and razor - with Jquery and compare how much code was needed and how quick it was and what it looks like?
Dependency Injection
Glad we all seem to be on the same page with this. think we should go ahead and implement an I.O.C container, I've used castle Windsor in the past, so have some examples of how to set that up. but I think the Idea is to Get one in place and not have to think about it too much. what do you think?
Unit testing
are we agreed moving forwards each piece of functionality should have its own unit tests, or a good explication as to why not. The desire is we move towards a TDD approach but for now we can leave it up to individuals as to how they want to implement there testing
DTO(domain transfer objects)
Auto mapper has been looked at, and found insufficient. If you have examples of where you had problem I would like to know about them. so I might be able to convince others that it's not a recommended way forwards.
Release Procedure
We want to work towards a one click deployment process, this would deploy the site to UAT, and package up a build for IT to deploy to live. How are we going to achieve this?
Data Access
What do you think about having a generic repository pattern,
you can read some more about it here along with unit of work,
I've looked at a slightly different implementation to it using the EF code first model and Castle Windsor IOC container which I can sent you.
I'm not sure about this but do think the container should take care of committing the unit of work on releasing the object? or as a developer would you want more control over when to commit you changes?
Merging and Branching
Conrad I know you have done some research on this, and my experience using vs2010 and Team system in this respect has been a positive one.
Comments please.
ExtJs is not a complete solution as far as I am concerned. Although I do believe that it is fully extensible, and enables us to get a good way there. Looking at other frameworks and how they would integrate into MVC either doesn't look as good, or need just as much work. ExtJs will need work, and the integration to our model doesn't come out of the box.
ReplyDeleteI think if we want something that looks good, and are willing to learn it, ExtJs is a good option. If we lose ExtJs, then rightly so, we need a good designer with us along the way.
As far as keeping the code clean, I know having some C# for the view seems like we are not separating it, but the code files should be thought as of an aspx view file. As in, you should pass it a data model, and it can manipulate the model as much as it likes to be able to display it in whatever way it wants. As long as we keep the business logic out, we're fine.
Html helpers are really good, and if we have a good theme set up, and styles, then the GUI can look good. We have to remember though that we are getting cross browser support with ExtJs, so if we don't use it then we need the expertise of that as well.
All in all, I don't mind what direction to go in. either one will require extra team members or resource (i.e. designers), or we will have to learn a new tech i.e. ExtJs. But, if design layout is not near the top of the list, then do we want to learn to manipulate ExtJs to our requirements now, or is functionality more important?
I’d like to see the following points on Ali’s post addressed in more detail:
ReplyDeleteDependency Injection – I know we thought that maybe we should do without until we’ve got a better understanding, so would be interested in if thinking has moved on.
Unit Testing Best Practice (maybe Mike can do a post on this?)
DTO (quickly though, you might as well send the domain object straight to the view as use Automapper at its simplest. Otherwise there’s an amount of manual coding required to translate domain object(s) into the view object required. At that point what we found was that Automapper just gets in the way and stops saving you time).
Release – I’ll do another post
DA Patterns
Branch / Merge – I’ll do another post
Dependency Injection – I think thinking has moved on a bit. I'd be happy for us to use an IOC container (maybe Castle, as Alistair has experience).
ReplyDeleteUnit Testing Best Practice - I'll put something up on this soon.
DTO - I wonder of most of the difficulty we had with Automapper was down to us trying to translate complicated Vantage objects into something sensible. For regular Domain->ViewModel mappings, I suspect things are simpler. Maybe worth another look?
DA Patterns - I agree the generic repository pattern is the way to go. Unit testing a repository almost forces you to do this anyway.
Branch/Merge - I think most of the issues people have with this are down to poor process control/poor source control software. I think with the right tools and the right process it could work well.