Pozdrav , svima, evo dobio jedan projekt za riješiti ali pošto sam novi u ovom dijelu , čitaj "početnik" - završio u Algebri C#, ASP.Net tečaj, pa pokušavam se ubaciti u IT Branšu , da ne duljim dalje , dobio zadatak pa se pitam :
MOŽE LI SE SVE OVO NAPRAVITI U JEDNOM PROJEKTU ILI TREBA RADITI VIŠE PROJEKATA !!!!
Molim samo objašnjenje od iskusnijih i ljudi punih znanja ili neku vrstu usmjerenja - ne trebam nikakav kod - želim ići korak po korak te samostalno riješiti ovaj zadatak kako bih naučio nešto iz ovog zadataka . Ima dosta nepoznanica za koje nisam ni čuo na predavanju . Pa
evo !!!
Requirements
· Create a database with following elements - riiešio
· VehicleMake (Id,Name,Abrv) e.g. BMW,Ford,Volkswagen,- riješio
· VehicleModel (Id,MakeId,Name,Abrv) e.g. 128,325,X5 (BWM),-riješio
· Create the solution (back-end) with following projects and elements
· Project.Service -
· EF models for above database tables
· VehicleService class - CRUD for Make and Model (Sorting, Filtering & Paging) - ovo ok
· Project.MVC - tu sad kaže MVC projekt - ok - visual studio - novi projekt asp.net Web Aplikacija - MVC - ok
· Make administration view (CRUD with Sorting, Filtering & Paging) -ok - jasno
· Model administration view (CRUD with Sorting, Filtering & Paging) - ok jasno
· Filtering by Make - ok jasno
· Create multi-layer architecture for the project (back-end) - tu sad kaže - Model-View-Controller - ok - gdje sad potrpati ovo ispod i što sad to ispod i čemu služi !!!!!!
· Project.DAL -Data Access Layer- ok - jasno - gdje sad sve ovo ispod ostalo trpati ????
· Project.Common
· Project.Model.Common
· Project.Model - ovdje idu klase s konstuktorom - ako sam dobro googlao !
· Project.Repository.Common
· Project.Repository
· Project.Repository.Tests
· Project.Service.Common
· Project.Service
· Project.Service.Tests
· Project.MVC/WebAPI -????
· Project.MVC.Tests/WebAPI.Tests - ?????
· Create Angular application (front-end) that will connect to back-end
· This should be a separate project or solution - Što sad s ovim ???
Implementation details
· async/await should be enforced in all layers (async all the way)
· all classes should be abstracted (have interfaces so that they can be unit tested)
· IoC (Inversion of Control) and DI (Dependency Injection) should be enforced in all layers (constructor injection preferable)
· Ninject DI container should be used
· Mapping should be done by using AutoMapper
· Create DAL project using EF 6 or above with Code First approach (EF Power Tools can be used)
· Project.Common should be cross-cutting project containing utility classes
· *.Common projects should contain contracts (interfaces) for layers
· Repository project should implement the following : - ovo sad trebam negdje staviti na sljedeće linkove ?? ?
· Generic repository - http://www.codeproject.com/........ bla bla što sad tu staviti ??
· Unit Of Work - https://gist.github.com/.......ide nastavak- što ovdje srtrpati https://gist.github.com/......nastavak... http://www.codeproject.com/..... opet nastavak
· Service project
· use composition pattern with repositories -inject them through the constructor ?
· service methods should only use model contracts (interfaces) as input and output parameters ?
· MVC/WebAPI project
· this is DI composition root so you should install Ninject here ?
· use controllers with async methods
· return proper Http status codes ?
· Angular
· enforce the following folder structure ?
· enforce the following naming conventions ?
Candidate should open a dedicated GitHub repository for the purpose of test project and occasionally report for code review.
Znam da nemam znanje za ovo ali pretpostavljam da ima ljudi kojima je ovo " piss off cake" - ali pošto nikad u životu nisam odustajao pa neću ni sad !
Note: Try to use agile approach while building test project, our suggestion is to build DAL then repository for only one small part of your application, implement service, WebAPI and AngularJS for the same small part of the application and then report for first code review.
MOlim gurue za kratka usmjerenja !
Hvala unaprijed svima koji žele podijeliti svoje znanje i nas trenutne neznalice nečemu naučiti ! '