2. From a 50K foot view Back to School of OOP not by definition but with real life usages. Why you should care to become a master of your Language and how does it help you to write better code. Different kinds of web application architectures. The patterns that are often used in a typical web application. Why SOLID Principle is important and how does it help to write quality codes. How does TDD/BDD helps writing better code. Why Tests are so Important and how to write effective tests. What is Refactoring and why should you learn the common refactoring techniques. The role of a Source Control and how does it simplifies the development process. What is CI (Continuous Integration) and how does it prevent bad codes to exits in your code repository. The Contemporary Tools and Technologies you should learn to become a better and productive developer.
3. Down in the trenches - 1 We will create an industrial strength Personal Blogging Engine from start to finish in live coding session. We will use distributed source control Git and at the end of the session all of our code will be available in GitHub. We will use MSBuild for build script and TeamCity for our CI Server. We will use MSpec which is a BDD framework for our test driven application. We will use SpecFlow for our Integration Tests. We will use MVC Pattern for both Server and Client Site. Our Admin/Control Panel will be a single page application in Client Side MVC Framework Spine.js. We will write our client side code in CoffeeScript instead of Plain old JavaScript. The Server side will be created with ASP.NET MVC 4. We will use Jasmine to test our Client side code. Our Blog should support different pluggable ORMs like NHibernate /Entity Framework and NoSql like MongoDB/RavenDB. We will also create our own file system based data storage.
4. Down in the trenches - 2 Our Blog should support different formats like Markdown, Textile and of course html, the formatters should be pluggable so that more formats can be added in future. We will use IoC Container like Windsor to drive our Blog. The blog should support Macro/Short Codes. The Blog should support multiple themes. We will use Sass and Compass for writing StyleSheets. We will utilize the maximum of Html5 and CSS3. We will use Simian, FxCop, StyleCop, PartCover for our Code Quality Metric. We will use pivotaltracker.com for our project task/issue/user story management.(I know the list is quite a big!)
5. Timeline & Session Format Timeline The session would be 1:00 – 1:30 hour each week on the same time till we complete our application. Format Intro/Recap Live Sessions of Coding Questionnaire/Moving Forward.
7. Selected our Project Management Tool -https://www.pivotaltracker.com/projects/387471 Selected our Source Control Hosting – https://github.com/kazimanzurrashid/LetsCodeWithMe We used NuGet as our Package management tool. Domain Modeling with Poco (Plain Old Clr Object) We decided to delay our Data Storage Selection as late as possible. A Gentle introduction of Acceptance Tests with SpecFlow and Watin. A Lightweight introduction of unit tests and BDD with MSpec and NSubstitute. Session-1 Summary