Required Software (Microsoft Base Software needed for Development environment)
- Visual Studio 2010 RTM & .NET 4.0 RTM (Final Versions)
- Expression Blend 4 RC (Or newer Version)
http://www.microsoft.com/downloads/details.aspx?FamilyID=88484825-1b3c-4e8c-8b14-b05d025e1541&displaylang=en
- Unity Application Block 2.0 - Published May 5th 2010
http://www.microsoft.com/downloads/details.aspx?FamilyID=2D24F179-E0A6-49D7-89C4-5B67D939F91B&displaylang=en
http://unity.codeplex.com/releases/view/31277
- PEX v0.91.50418.0, 04/19/2010 - (including Moles) Visual Studio 2010 Power Tools Pre-Release
http://research.microsoft.com/en-us/projects/pex/downloads.aspx#PexMSDN
http://wpf.codeplex.com/releases/view/40535
http://wpf.codeplex.com/
- Silverlight 4 Tools for Visual Studio 2010
http://www.microsoft.com/downloads/details.aspx?familyid=902A7539-C4B5-4E54-B4C9-1432DAABE1E8&displaylang=en
- Silverlight 4.0 Toolkit (Apr. 15 2010)
http://silverlight.codeplex.com/releases/view/43528
- Windows Server AppFabric Beta2 Refresh or RC (Just for our version 0.72)
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=a9b94a33-2ec2-4439-902f-813539cf42d2
New functionality in this V0.8:
UNITY 2.0 support!! -- Almost all code was compatible. We just changed some lifetimemanagers, see down below.
Silverlight 4.0 Client (Better functionality) -- Silverlight project is 100% Blend 4 Friendly
-- Class Library with entities logic code for Self Tracking Entities process. We're referencing same code used in .NET through links, so, for this point we use same code for .NET and Silverlight, but we recompile it in a Silverlight library code which just has liks to .NET code situated in Domain.Core,Domain.MainModule.Entities.
New Unity lifetimemanager for Unit Of Work (EF Context) sharing between several object graphs and Resolve<>-- We created our custom lifetimemanager which is called "PerExecutionContextLifetimeManager". This way you can share your Unit-Of-Work (EF-Context) between several Unity object graphs (different IoCFactory.Resolve<>). :-)
Internally (within our lifetimemanager) we're storing the Unit-Of-Work (EF-Context) within a context, depending of the EXECUTION ENVIRONMENT, I mean:
- WCF Service --> WCF Context
- ASP.NET --> HTTP Context
- Unit Testing --> CallContext (Based on internall Remoting ContextBoundObjects)
See this thread for more info: http://microsoftnlayerapp.codeplex.com/Thread/View.aspx?ThreadId=211448
Functionality improvement -- Some minor functionality changes like paging and some entities showed in Combos (WPF)
Assemblies Documentation (.CHM) -- We generated a .CHM help file with all assemblies' comments, using SANDCASTLE. Still a Draft/beta version. Many comments have to be reviewed (proper translation, etc.).
How To Setup this project in VS.2010:
After installing ALL pre-required software, do the following steps
- Create an empty SQL Server 2008 or SQL 2008 R2
DataBase called NLayerApp (conn-string is currently using SQL Server 2008 EXPRESS, like .\SQLEXPRESS)
-
IMPORTANT: Open the VS Solution and within the DATABASE project, execute the sql script called "Script.PostDeployment.sql". This will create all the tables needed bythe app. Take into account that thisscript will be executed in every app's execution, so, all data will be cleaned up, for testing purposes, etc. It you do not want this, just comment the content of thie .SQL file or enable/disable it within Database project's settings.
- Select the WPF or SL4.0 project as 'Default project' for debugging.
- Depending on what you want to execute (
Repositories working against the real DB or against an in-memory 'EF-MOCK' we have), you can change it using just a
Web.config property in the
WCF WebSite project:
key="defaultIoCContainer" value="RealAppContext" will run against the Database
key="defaultIoCContainer" value="FakeAppContex" will run against in-memory EF-Context fake