[REEF-1991] Delete old project, rename DotNet projects to old project names.

This change removes all the old projects and renames the new projects to
the old project names (effectively removing the "DotNet" name). Changes
include the following:

  - Deletes old projects
  - Renames all *.DotNet.csproj to *.csproj
  - Renames all AssemblyInfo.DotNet.cs to AssemblyInfo.cs. If the
    project only had an AssemblyInfo.cs, this was deleted since its
    specified now in the csproj file.
  - Removed all packages.config
  - Removed all *.nuspec.
  - Updates to appveyor.xml for building.

JIRA:
  [REEF-1991](https://issues.apache.org/jira/browse/REEF-1991)

Pull Request:
  This closes #1459
diff --git a/appveyor.yml b/appveyor.yml
index a9c7d7d..600b581 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -32,11 +32,11 @@
   - ps: .\dev\appveyor-install-dependencies.ps1
 
 build_script:
-  - cmd: msbuild .\lang\cs\Org.Apache.REEF.DotNet.sln /p:Configuration="Release" /p:Platform="x64" /t:Restore
-  - cmd: msbuild .\lang\cs\Org.Apache.REEF.DotNet.sln /p:Configuration="Release" /p:Platform="x64" /m
+  - cmd: msbuild .\lang\cs\Org.Apache.REEF.sln /p:Configuration="Release" /p:Platform="x64" /t:Restore
+  - cmd: msbuild .\lang\cs\Org.Apache.REEF.sln /p:Configuration="Release" /p:Platform="x64" /m
 
 test_script:
-  - cmd: msbuild .\lang\cs\TestRunner.DotNet.proj /p:Configuration="Release" /p:Platform="x64"
+  - cmd: msbuild .\lang\cs\TestRunner.proj /p:Configuration="Release" /p:Platform="x64"
 
 after_build:
   - ps: .\bin\AnalyzeClrCompatibility.ps1
diff --git a/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.DotNet.csproj b/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.DotNet.csproj
deleted file mode 100644
index 8648713..0000000
--- a/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.DotNet.csproj
+++ /dev/null
@@ -1,49 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Bridge</AssemblyName>
-    <Description>Avro bridge for REEF.NET</Description>
-    <PackageTags>REEF Bridge</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <PropertyGroup>
-    <AvroBinaryDirectory>..\packages\AvroBin</AvroBinaryDirectory>
-    <AvroSchemaDirectory>..\..\common\bridge\avro</AvroSchemaDirectory>
-    <AvroTools>..\packages\microsoft.avro.tools\$(AvroVersion)\lib\net451\Microsoft.Avro.Tools.exe</AvroTools>
-    <AvroLibrary>..\packages\microsoft.avro.core\$(AvroVersion)\lib\net451\Microsoft.Avro.Core.dll</AvroLibrary>
-    <NewtonsoftLibrary>..\packages\newtonsoft.json\$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</NewtonsoftLibrary>
-  </PropertyGroup>
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-    <PackageReference Include="Microsoft.Avro.Tools" Version="$(AvroVersion)" />
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-  </ItemGroup>
-  <!-- REEF-1893, custom task needs to be moved into a binary, note to remove DependsOnTargets="RestorePackages" in AvroCodeGeneration.targets
-  <Import Project="$(SolutionDir)\AvroCodeGeneration.targets" Condition="Exists('$(SolutionDir)\AvroCodeGeneration.targets')" />
-  -->
-  <Import Project="..\build.DotNet.targets" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.csproj b/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.csproj
index 6cd2bb8..1105f9d 100644
--- a/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.csproj
+++ b/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,81 +17,33 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{E19FF4F8-AB45-4631-8017-E18D94D882DD}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Bridge.CLR</RootNamespace>
-    <AssemblyName>Org.Apache.REEF.Bridge.CLR</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+    <AssemblyName>Org.Apache.REEF.Bridge</AssemblyName>
+    <Description>Avro bridge for REEF.NET</Description>
+    <PackageTags>REEF Bridge</PackageTags>
+  </PropertyGroup>
+  <Import Project="..\build.Library.props" />
+  <PropertyGroup>
     <AvroBinaryDirectory>..\packages\AvroBin</AvroBinaryDirectory>
     <AvroSchemaDirectory>..\..\common\bridge\avro</AvroSchemaDirectory>
-    <AvroTools>..\packages\Microsoft.Avro.Tools.0.1.0\lib\net451\Microsoft.Avro.Tools.exe</AvroTools>
-    <AvroLibrary>..\packages\Microsoft.Avro.Core.0.1.0\lib\net451\Microsoft.Avro.Core.dll</AvroLibrary>
-    <NewtonsoftLibrary>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</NewtonsoftLibrary>
+    <AvroTools>..\packages\microsoft.avro.tools\$(AvroVersion)\lib\net451\Microsoft.Avro.Tools.exe</AvroTools>
+    <AvroLibrary>..\packages\microsoft.avro.core\$(AvroVersion)\lib\net451\Microsoft.Avro.Core.dll</AvroLibrary>
+    <NewtonsoftLibrary>..\packages\newtonsoft.json\$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</NewtonsoftLibrary>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.IO.Compression.FileSystem" />
-    <Reference Include="System.Numerics" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Xml.Linq" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
+    <PackageReference Include="Microsoft.Avro.Tools" Version="$(AvroVersion)" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="LocalObserver.cs" />
-    <Compile Include="Message\Acknowledgement.cs" />
-    <Compile Include="Message\BridgeProtocol.cs" />
-    <Compile Include="Message\SetupBridge.cs" />
-    <Compile Include="Message\SystemOnStart.cs" />
-    <Compile Include="NetworkTransport.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Message\README.md" />
-    <None Include="Org.Apache.REEF.Bridge.CLR.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>ReefCommon</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\AvroCodeGeneration.Targets" Condition="Exists('$(SolutionDir)\AvroCodeGeneration.Targets')" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <!-- REEF-1893, custom task needs to be moved into a binary, note to remove DependsOnTargets="RestorePackages" in AvroCodeGeneration.targets
+  <Import Project="$(SolutionDir)\AvroCodeGeneration.targets" Condition="Exists('$(SolutionDir)\AvroCodeGeneration.targets')" />
+  -->
+  <Import Project="..\build.targets" />
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.nuspec b/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.nuspec
deleted file mode 100644
index 1a710c7..0000000
--- a/lang/cs/Org.Apache.REEF.Bridge.CLR/Org.Apache.REEF.Bridge.CLR.nuspec
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Bridge.CLR</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Bridge.CLR</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Avro bridge for REEF.NET</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <dependencies>
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.IO" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-    </dependencies>
-  </metadata>
-
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Bridge.CLR/packages.config b/lang/cs/Org.Apache.REEF.Bridge.CLR/packages.config
deleted file mode 100644
index 7e886bd..0000000
--- a/lang/cs/Org.Apache.REEF.Bridge.CLR/packages.config
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.DotNet.csproj b/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.DotNet.csproj
deleted file mode 100644
index 0c700bd..0000000
--- a/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.DotNet.csproj
+++ /dev/null
@@ -1,85 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Bridge.JAR</AssemblyName>
-    <Description>Helper project that builds the Bridge JAR </Description>
-    <TargetFramework>net461</TargetFramework>
-  </PropertyGroup>
-  <Import Project="..\build.DotNet.props" />
-  <PropertyGroup>
-    <IsPackable>false</IsPackable>
-    <OutputPath>$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge.JAR\</OutputPath>
-  </PropertyGroup>
-  <Import Project="..\build.DotNet.targets" />
-  <Import Project="..\pomversion.DotNet.targets" />
-
-  <!--
-    Check that maven is installed
-  -->
-  <Target Name="CheckMavenInstall">
-    <Error Condition=" '$(M2_HOME)' == '' " Text="$M2_HOME is not set. Please make sure that Maven is installed and configured. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." />
-    <Error Condition=" '$(JAVA_HOME)' == '' " Text="$JAVA_HOME is not set. Please make sure that Java is installed and configured. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." />
-    <Message Text="Using the maven installation found in $(M2_HOME)" Importance="high" />
-  </Target>
-  <Target Name="CheckJavaInstall">
-    <Error Condition=" '$(JAVA_HOME)' == '' " Text="$JAVA_HOME is not set. Please make sure that Java is installed and configured. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." />
-    <Message Text="Using the java installation found in $(JAVA_HOME)" Importance="high" />
-  </Target>
-  <Target Name="CheckProtocInstall">
-    <Exec ContinueOnError="True" IgnoreExitCode="true" Command="&quot;cmd /c where protoc.exe&quot;">
-      <Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
-    </Exec>
-    <Message Text="The exit code is $(ErrorCode)" Importance="high" />
-    <Error Text="protoc.exe not found. Please make sure that protoc.exe is on the path. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." Condition="'$(ErrorCode)' &gt; '0'" />
-  </Target>
-  <!--
-    Executes 'mvn install', if the JAR does not exist.
-  -->
-  <Target Name="Build" DependsOnTargets="CheckMavenInstall;CheckJavaInstall;CheckProtocInstall" Outputs="$(OutputPath)">
-    <PropertyGroup>
-      <!--The shaded jar of the bridge (driver side) -->
-      <Bridge_JAR_Name>reef-bridge-java-$(REEF_Version)-shaded.jar</Bridge_JAR_Name>
-      <Bridge_JAR>$(REEF_Source_Folder)\lang\java\reef-bridge-java\target\$(Bridge_JAR_Name)</Bridge_JAR>
-      <!--The shaded jar of the bridge (client side) -->
-      <Client_JAR_Name>reef-bridge-client-$(REEF_Version)-shaded.jar</Client_JAR_Name>
-      <Client_JAR>$(REEF_Source_Folder)\lang\java\reef-bridge-client\target\$(Client_JAR_Name)</Client_JAR>
-    </PropertyGroup>
-    <Exec Command="call &quot;$(M2_HOME)\bin\mvn.cmd&quot; --projects lang/java/reef-bridge-java,lang/java/reef-bridge-client --also-make -TC1 -DskipTests -P!code-quality install" Condition="!Exists('$(Bridge_JAR)')" WorkingDirectory="$(REEF_Source_Folder)" />
-    <Message Text="Copying jar files to $(OutputPath)" Importance="high" />
-    <Copy DestinationFolder="$(OutputPath)" SourceFiles="$(Bridge_JAR)" />
-    <Copy DestinationFolder="$(OutputPath)" SourceFiles="$(Client_JAR)" />
-  </Target>
-  <!--
-    Executes 'mvn clean', if the JAR exists.
-  -->
-  <Target Name="Clean" DependsOnTargets="CheckMavenInstall;CheckJavaInstall;CheckProtocInstall">
-    <PropertyGroup>
-      <!--The shaded jar of the bridge (driver side) -->
-      <Bridge_JAR_Name>reef-bridge-java-$(REEF_Version)-shaded.jar</Bridge_JAR_Name>
-      <Bridge_JAR>$(REEF_Source_Folder)\lang\java\reef-bridge-java\target\$(Bridge_JAR_Name)</Bridge_JAR>
-      <!--The shaded jar of the bridge (client side) -->
-      <Client_JAR_Name>reef-bridge-client-$(REEF_Version)-shaded.jar</Client_JAR_Name>
-      <Client_JAR>$(REEF_Source_Folder)\lang\java\reef-bridge-client\target\$(Client_JAR_Name)</Client_JAR>
-    </PropertyGroup>
-    <Exec Command="call &quot;$(M2_HOME)\bin\mvn.cmd&quot; -TC1 -DskipTests -q clean" Condition="Exists('$(Bridge_JAR)')" WorkingDirectory="$(REEF_Source_Folder)" />
-    <Delete Files="$(OutputPath)\$(Bridge_JAR_Name)" />
-    <Delete Files="$(OutputPath)\$(Client_JAR_Name)" />
-  </Target>
-  <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
-  <Target Name="CheckPrerequisites" DependsOnTargets="Build" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.csproj b/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.csproj
index 918955a..1ac6e73 100644
--- a/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.csproj
+++ b/lang/cs/Org.Apache.REEF.Bridge.JAR/Org.Apache.REEF.Bridge.JAR.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -15,47 +15,42 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <!--Set configuration parameters usually set in the Solution. This is needed for build.props to work.-->
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RootNamespace>Org.Apache.REEF.Bridge.JAR</RootNamespace>
-    <ProjectGuid>{62905C7C-1A7E-4923-B78D-1BF42D7FAD40}</ProjectGuid>
     <AssemblyName>Org.Apache.REEF.Bridge.JAR</AssemblyName>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>false</BuildPackage>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+    <Description>Helper project that builds the Bridge JAR </Description>
+    <TargetFramework>net461</TargetFramework>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" />
+  <Import Project="..\build.props" />
+  <PropertyGroup>
+    <IsPackable>false</IsPackable>
+    <OutputPath>$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge.JAR\</OutputPath>
+  </PropertyGroup>
+  <Import Project="..\build.targets" />
+  <Import Project="..\pomversion.targets" />
+
   <!--
     Check that maven is installed
   -->
   <Target Name="CheckMavenInstall">
     <Error Condition=" '$(M2_HOME)' == '' " Text="$M2_HOME is not set. Please make sure that Maven is installed and configured. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." />
     <Error Condition=" '$(JAVA_HOME)' == '' " Text="$JAVA_HOME is not set. Please make sure that Java is installed and configured. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." />
-    <Message Text="Using the maven installation found in $(M2_HOME)" />
+    <Message Text="Using the maven installation found in $(M2_HOME)" Importance="high" />
   </Target>
   <Target Name="CheckJavaInstall">
     <Error Condition=" '$(JAVA_HOME)' == '' " Text="$JAVA_HOME is not set. Please make sure that Java is installed and configured. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." />
-    <Message Text="Using the java installation found in $(JAVA_HOME)" />
+    <Message Text="Using the java installation found in $(JAVA_HOME)" Importance="high" />
   </Target>
   <Target Name="CheckProtocInstall">
     <Exec ContinueOnError="True" IgnoreExitCode="true" Command="&quot;cmd /c where protoc.exe&quot;">
       <Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
     </Exec>
-    <Message Text="The exit code is $(ErrorCode)" />
-    <Message Text="BuildPackage is $(BuildPackage)" />
+    <Message Text="The exit code is $(ErrorCode)" Importance="high" />
     <Error Text="protoc.exe not found. Please make sure that protoc.exe is on the path. See https://cwiki.apache.org/confluence/display/REEF/Compiling+REEF for details." Condition="'$(ErrorCode)' &gt; '0'" />
   </Target>
   <!--
     Executes 'mvn install', if the JAR does not exist.
   -->
-  <Target Name="Build"
-          DependsOnTargets="CheckMavenInstall;CheckJavaInstall;CheckProtocInstall"
-          Outputs="$(OutputPath)">
+  <Target Name="Build" DependsOnTargets="CheckMavenInstall;CheckJavaInstall;CheckProtocInstall" Outputs="$(OutputPath)">
     <PropertyGroup>
       <!--The shaded jar of the bridge (driver side) -->
       <Bridge_JAR_Name>reef-bridge-java-$(REEF_Version)-shaded.jar</Bridge_JAR_Name>
@@ -64,7 +59,8 @@
       <Client_JAR_Name>reef-bridge-client-$(REEF_Version)-shaded.jar</Client_JAR_Name>
       <Client_JAR>$(REEF_Source_Folder)\lang\java\reef-bridge-client\target\$(Client_JAR_Name)</Client_JAR>
     </PropertyGroup>
-    <Exec Command='call "$(M2_HOME)\bin\mvn.cmd" --projects lang/java/reef-bridge-java,lang/java/reef-bridge-client --also-make -TC1 -DskipTests -P!code-quality -q install' Condition="!Exists('$(Bridge_JAR)')" WorkingDirectory="$(REEF_Source_Folder)" />
+    <Exec Command="call &quot;$(M2_HOME)\bin\mvn.cmd&quot; --projects lang/java/reef-bridge-java,lang/java/reef-bridge-client --also-make -TC1 -DskipTests -P!code-quality install" Condition="!Exists('$(Bridge_JAR)')" WorkingDirectory="$(REEF_Source_Folder)" />
+    <Message Text="Copying jar files to $(OutputPath)" Importance="high" />
     <Copy DestinationFolder="$(OutputPath)" SourceFiles="$(Bridge_JAR)" />
     <Copy DestinationFolder="$(OutputPath)" SourceFiles="$(Client_JAR)" />
   </Target>
@@ -80,14 +76,10 @@
       <Client_JAR_Name>reef-bridge-client-$(REEF_Version)-shaded.jar</Client_JAR_Name>
       <Client_JAR>$(REEF_Source_Folder)\lang\java\reef-bridge-client\target\$(Client_JAR_Name)</Client_JAR>
     </PropertyGroup>
-    <Exec Command='call "$(M2_HOME)\bin\mvn.cmd" -TC1 -DskipTests -q clean' Condition="Exists('$(Bridge_JAR)')" WorkingDirectory="$(REEF_Source_Folder)" />
+    <Exec Command="call &quot;$(M2_HOME)\bin\mvn.cmd&quot; -TC1 -DskipTests -q clean" Condition="Exists('$(Bridge_JAR)')" WorkingDirectory="$(REEF_Source_Folder)" />
     <Delete Files="$(OutputPath)\$(Bridge_JAR_Name)" />
     <Delete Files="$(OutputPath)\$(Client_JAR_Name)" />
-
   </Target>
-  <!--
-    Standard Rebuild target: Clean, then build
-  -->
-  <Target Name="Rebuild" DependsOnTargets="Clean;Build"/>
-  <Target Name="CheckPrerequisites" DependsOnTargets="Build"/>
+  <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+  <Target Name="CheckPrerequisites" DependsOnTargets="Build" />
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.DotNet.vcxproj b/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.DotNet.vcxproj
deleted file mode 100644
index d713437..0000000
--- a/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.DotNet.vcxproj
+++ /dev/null
@@ -1,216 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <TargetName>Org.Apache.REEF.Bridge</TargetName>
-    <BuildInParallel>false</BuildInParallel>
-    <Configuration Condition="'$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition="'$(Platform)' == ''">x64</Platform>
-    <SolutionDir Condition="'$(SolutionDir)' == ''">..</SolutionDir>
-    <ConfigurationType>Application</ConfigurationType>
-    <!-- Added for when the .net core build is enabled. This prevents assemblies for the bridge
-         to be copied to the bin folder. -->
-    <ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
-  </PropertyGroup>
-  <Import Project="..\build.Common.DotNet.props" />
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{6C7325D1-EBB6-4642-B34F-B66F46152230}</ProjectGuid>
-    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
-    <Keyword>ManagedCProj</Keyword>
-    <RootNamespace>Org.Apache.REEF.Bridge</RootNamespace>
-    <WindowsTargetPlatformVersion Condition="'$(MSBuildAssemblyVersion)' &gt;= '15.0'">10.0.15063.0</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <!--
-    Switch the PlatformToolset based on the Visual Studio Version
-  -->
-  <PropertyGroup>
-    <!-- Assume Visual Studio 2015 / 14.0 as the default -->
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-  </PropertyGroup>
-  <!-- Visual Studio 2013 (12.0) -->
-  <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'">
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <!-- Visual Studio 2015 (14.0) -->
-  <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'">
-    <PlatformToolset>v140</PlatformToolset>
-  </PropertyGroup>
-  <!-- Visual Studio 2017 (15.0) -->
-  <PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'">
-    <PlatformToolset>v141</PlatformToolset>
-  </PropertyGroup>
-  <!--
-    End of: Switch the PlatformToolset based on the Visual Studio Version
-  -->
-  <PropertyGroup>
-    <!-- Auto generate binding redirects to make sure the latest Newtonsoft JSON is picked up -->
-    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CLRSupport>true</CLRSupport>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <CLRSupport>true</CLRSupport>
-    <CharacterSet>Unicode</CharacterSet>
-    <RestorePackages>true</RestorePackages>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <ReferencePath>$(BinDir)Org.Apache.REEF.Driver;$(ReferencePath)</ReferencePath>
-    <OutDir>$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge\</OutDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <ReferencePath>$(BindDir)Org.Apache.REEF.Driver;$(ReferencePath)</ReferencePath>
-    <OutDir>$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge\</OutDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\java\reef-bridge-java\target\classes;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <AdditionalUsingDirectories>$(BinDir)$(Configuration)\Org.Apache.REEF.Driver\netstandard2.0;C:\Program Files\dotnet\sdk\2.1.4\Microsoft\Microsoft.NET.Build.Extensions\net461\lib;$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
-      <!-- Disable C4691 about missing references. This is benign as the warning reports using a default implementation. -->
-      <DisableSpecificWarnings>4691;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>
-      </AdditionalDependencies>
-      <AdditionalOptions>/ignore:4248 %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <AdditionalIncludeDirectories>..\..\java\reef-bridge-java\target\classes;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <AdditionalUsingDirectories>$(BinDir)$(Configuration)\Org.Apache.REEF.Driver\netstandard2.0;$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
-      <!-- Disable C4691 about missing references. This is benign as the warning reports using a default implementation. -->
-      <DisableSpecificWarnings>4691;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>
-      </AdditionalDependencies>
-      <AdditionalOptions>/ignore:4248 %(AdditionalOptions)</AdditionalOptions>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="BinaryUtil.h" />
-    <ClInclude Include="Clr2JavaImpl.h" />
-    <ClInclude Include="InteropAssemblies.h" />
-    <ClInclude Include="InteropLogger.h" />
-    <ClInclude Include="InteropUtil.h" />
-    <ClInclude Include="JavaClrBridge.h" />
-    <ClInclude Include="resource.h" />
-    <ClInclude Include="Stdafx.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="ActiveContextClr2Java.cpp" />
-    <ClCompile Include="AllocatedEvaluatorClr2Java.cpp" />
-    <ClCompile Include="AssemblyInfo.cpp" />
-    <ClCompile Include="AssemblyUtil.cpp" />
-    <ClCompile Include="BinaryUtil.cpp" />
-    <ClCompile Include="ClosedContextClr2Java.cpp" />
-    <ClCompile Include="CommonUtilities.cpp" />
-    <ClCompile Include="CompletedEvaluatorClr2Java.cpp" />
-    <ClCompile Include="CompletedTaskClr2Java.cpp" />
-    <ClCompile Include="ContextMessageClr2Java.cpp" />
-    <ClCompile Include="DriverLauncher.cpp" />
-    <ClCompile Include="DriverRestartedClr2Java.cpp" />
-    <ClCompile Include="DriverRestartCompletedClr2Java.cpp" />
-    <ClCompile Include="EvaluatorRequestorClr2Java.cpp" />
-    <ClCompile Include="FailedContextClr2Java.cpp" />
-    <ClCompile Include="FailedEvaluatorClr2Java.cpp" />
-    <ClCompile Include="FailedTaskClr2Java.cpp" />
-    <ClCompile Include="HttpServerClr2Java.cpp" />
-    <ClCompile Include="InteropLogger.cpp" />
-    <ClCompile Include="InteropUtil.cpp" />
-    <ClCompile Include="JavaClrBridge.cpp" />
-    <ClCompile Include="RunningTaskClr2Java.cpp" />
-    <ClCompile Include="Stdafx.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
-    </ClCompile>
-    <ClCompile Include="SuspendedTaskClr2Java.cpp" />
-    <ClCompile Include="TaskMessageClr2Java.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <Text Include="ReadMe.txt" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="app.rc" />
-  </ItemGroup>
-  <ItemGroup>
-    <Image Include="app.ico" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge.JAR\Org.Apache.REEF.Bridge.JAR.DotNet.csproj">
-      <!-- <Project>{62905c7c-1a7e-4923-b78d-1bf42d7fad40}</Project> -->
-      <Private>false</Private>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
-      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
-    </ProjectReference>
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-  <!-- Adds an empty pack target so that this project is skipped when packing. -->
-  <Target Name="Pack">
-  </Target>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.vcxproj b/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.vcxproj
index ef98904..50e533c 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.vcxproj
+++ b/lang/cs/Org.Apache.REEF.Bridge/Org.Apache.REEF.Bridge.vcxproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -17,15 +17,17 @@
 -->
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
+    <TargetName>Org.Apache.REEF.Bridge</TargetName>
     <BuildInParallel>false</BuildInParallel>
     <Configuration Condition="'$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition="'$(Platform)' == ''">x64</Platform>
     <SolutionDir Condition="'$(SolutionDir)' == ''">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
     <ConfigurationType>Application</ConfigurationType>
+    <!-- Added for when the .net core build is enabled. This prevents assemblies for the bridge
+         to be copied to the bin folder. -->
+    <ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\build.targets" />
+  <Import Project="..\build.Common.props" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|x64">
       <Configuration>Debug</Configuration>
@@ -37,11 +39,11 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{4E69D40A-26D6-4D4A-B96D-729946C07FE1}</ProjectGuid>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <ProjectGuid>{6C7325D1-EBB6-4642-B34F-B66F46152230}</ProjectGuid>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <Keyword>ManagedCProj</Keyword>
     <RootNamespace>Org.Apache.REEF.Bridge</RootNamespace>
-    <WindowsTargetPlatformVersion Condition="'$(MSBuildAssemblyVersion)' >= '15.0'">10.0.15063.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformVersion Condition="'$(MSBuildAssemblyVersion)' &gt;= '15.0'">10.0.15063.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <!--
@@ -93,13 +95,13 @@
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
-    <ReferencePath>..\bin\$(Platform)\$(Configuration)\Org.Apache.REEF.Driver;..\bin\x64\Release\Org.Apache.REEF.Driver;$(ReferencePath)</ReferencePath>
-    <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
+    <ReferencePath>$(BinDir)Org.Apache.REEF.Driver;$(ReferencePath)</ReferencePath>
+    <OutDir>$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge\</OutDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <LinkIncremental>false</LinkIncremental>
-    <ReferencePath>..\bin\$(Platform)\$(Configuration)\Org.Apache.REEF.Driver;..\bin\x64\Release\Org.Apache.REEF.Driver;$(ReferencePath)</ReferencePath>
-    <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
+    <ReferencePath>$(BindDir)Org.Apache.REEF.Driver;$(ReferencePath)</ReferencePath>
+    <OutDir>$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge\</OutDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -109,12 +111,14 @@
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <AdditionalIncludeDirectories>..\..\java\reef-bridge-java\target\classes;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <AdditionalUsingDirectories>$(BinDir)$(Configuration)\Org.Apache.REEF.Driver\netstandard2.0;C:\Program Files\dotnet\sdk\2.1.4\Microsoft\Microsoft.NET.Build.Extensions\net461\lib;$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
+      <!-- Disable C4691 about missing references. This is benign as the warning reports using a default implementation. -->
+      <DisableSpecificWarnings>4691;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <Link>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <AdditionalDependencies>
       </AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\bin\$(Platform)\$(Configuration)\Org.Apache.REEF.Driver;..\bin\x64\$(Configuration)\Org.Apache.REEF.Driver;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalOptions>/ignore:4248 %(AdditionalOptions)</AdditionalOptions>
     </Link>
   </ItemDefinitionGroup>
@@ -124,12 +128,15 @@
       <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <AdditionalIncludeDirectories>..\..\java\reef-bridge-java\target\classes;$(JAVA_HOME)\include;$(JAVA_HOME)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <AdditionalUsingDirectories>$(BinDir)$(Configuration)\Org.Apache.REEF.Driver\netstandard2.0;$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
+      <!-- Disable C4691 about missing references. This is benign as the warning reports using a default implementation. -->
+      <DisableSpecificWarnings>4691;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <Link>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <AdditionalDependencies>
       </AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\bin\$(Platform)\$(Configuration)\Org.Apache.REEF.Driver;..\bin\x64\$(Configuration)\Org.Apache.REEF.Driver;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalOptions>/ignore:4248 %(AdditionalOptions)</AdditionalOptions>
     </Link>
   </ItemDefinitionGroup>
@@ -188,8 +195,8 @@
     <Image Include="app.ico" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Bridge.JAR\Org.Apache.REEF.Bridge.JAR.csproj">
-      <Project>{62905c7c-1a7e-4923-b78d-1bf42d7fad40}</Project>
+    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge.JAR\Org.Apache.REEF.Bridge.JAR.csproj">
+      <!-- <Project>{62905c7c-1a7e-4923-b78d-1bf42d7fad40}</Project> -->
       <Private>false</Private>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
       <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
@@ -203,4 +210,7 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+  <!-- Adds an empty pack target so that this project is skipped when packing. -->
+  <Target Name="Pack">
+  </Target>
+</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.DotNet.csproj
deleted file mode 100644
index 7803aa3..0000000
--- a/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.DotNet.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Client.Tests</AssemblyName>
-    <Description>REEF Client Tests</Description>
-    <PackageTags>REEF Client</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
-    <PackageReference Include="System.ServiceProcess.ServiceController" Version="4.4.0" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.csproj b/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.csproj
index 0602f70..0aecb3d 100644
--- a/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Client.Tests/Org.Apache.REEF.Client.Tests.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,94 +17,24 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <ProjectGuid>{BB41D9A3-0FA4-4CBA-AEF2-4D5BF18B482C}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Client.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Client.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <TestProjectType>UnitTest</TestProjectType>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+    <Description>REEF Client Tests</Description>
+    <PackageTags>REEF Client</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="NSubstitute, Version=$(NSubstituteVersion), Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\NSubstitute.$(NSubstituteVersion)\lib\net45\NSubstitute.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.ServiceProcess" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
+    <PackageReference Include="System.ServiceProcess.ServiceController" Version="4.4.0" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="AzureBatchCommandBuilderTests.cs" />
-    <Compile Include="HDInsightYarnClientTests.cs" />
-    <Compile Include="JobRequestBuilderTests.cs" />
-    <Compile Include="JobResourceUploaderTests.cs" />
-    <Compile Include="LegacyJobResourceUploaderTests.cs" />
-    <Compile Include="MultipleRMUrlProviderTests.cs" />
-    <Compile Include="RestClientTests.cs" />
-    <Compile Include="TestFileWritingAssert.cs" />
-    <Compile Include="WindowsHadoopEmulatorYarnClientTests.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="YarnClientTests.cs" />
-    <Compile Include="YarnConfigurationUrlProviderTests.cs" />
-    <Compile Include="WindowsYarnJobCommandProviderTests.cs" />
-    <Compile Include="YarnREEFParamSerializerTests.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{DEC0F0A8-DBEF-4EBF-B69C-E2369C15ABF1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97DBB573-3994-417A-9F69-FFA25F00D2A6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79E7F89A-1DFB-45E1-8D43-D71A954AEB98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{A6BAA2A7-F52F-4329-884E-1BCF711D6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545A0582-4105-44CE-B99C-B1379514A630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(NuGetError)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-</Project>
\ No newline at end of file
+  <Import Project="..\build.Test.targets" />
+</Project>
diff --git a/lang/cs/Org.Apache.REEF.Client.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Client.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index fe261bb..0000000
--- a/lang/cs/Org.Apache.REEF.Client.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-// 
-//   http://www.apache.org/licenses/LICENSE-2.0
-// 
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Client.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Client.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("0f573fbb-22d7-45e4-a7e4-2b29029f3148")]
diff --git a/lang/cs/Org.Apache.REEF.Client.Tests/packages.config b/lang/cs/Org.Apache.REEF.Client.Tests/packages.config
deleted file mode 100644
index 347c9f0..0000000
--- a/lang/cs/Org.Apache.REEF.Client.Tests/packages.config
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="NSubstitute" version="1.8.2.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.DotNet.csproj b/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.DotNet.csproj
deleted file mode 100644
index ea13564..0000000
--- a/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.DotNet.csproj
+++ /dev/null
@@ -1,160 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (thee
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Client</AssemblyName>
-    <Description>Client for REEF.NET</Description>
-    <PackageTags>REEF Client</PackageTags>
-    <!-- Disable default embedded resources as we override this in the project -->
-    <EnableDefaultEmbeddedResourceItems>False</EnableDefaultEmbeddedResourceItems>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <PropertyGroup>
-    <TempResxFile Condition="$(TempResxFile) == ''">$(OutputPath)\$(TargetFramework)\Resources.DotNet.resx</TempResxFile>
-  </PropertyGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="$(TempResxFile)">
-      <Generator>ResXFileCodeGenerator</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <PackageReference Include="Azure.Batch" Version="8.0.0" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="EnterpriseLibrary.TransientFaultHandling.Core" Version="$(TransientFaultHandlingVersion)" />
-    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
-    <PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.3.0" />
-  </ItemGroup>
-
-  <!-- Project Reference conditionals allow for targeting specific projects based upon the target framework. -->
-  <ItemGroup Condition="'$(TargetFramework)' == 'net461'">
-    <ProjectReference Include="..\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.DotNet.vcxproj" PrivateAssets="All" />
-  </ItemGroup>
-  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
-    <ProjectReference Include="..\Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.DotNet.csproj" PrivateAssets="All" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-  <!--
-       ########################################################################
-         ReWrite client resx to point to correct version of jars
-       ######################################################################## 
-  -->
-  <!--A Task that extracts the version from the pom in a given folder.-->
-  <UsingTask TaskName="UpdateClientResources" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
-    <ParameterGroup>
-      <SnapshotNumber />
-      <ProjectFolder Required="true" />
-      <DebugOrRelease Required="true" />
-      <resxOutputPath Required="true" />
-    </ParameterGroup>
-    <Task>
-      <Reference Include="System.Xml" />
-      <Reference Include="System.Xml.Linq" />
-      <Using Namespace="System" />
-      <Using Namespace="System.IO" />
-      <Using Namespace="System.Xml" />
-      <Using Namespace="System.Linq" />
-      <Using Namespace="System.Xml.Linq" />
-      <Code Type="Fragment" Language="cs">
-        <![CDATA[
-      var Version = XDocument.Load(Path.Combine(ProjectFolder, "pom.xml")).Descendants()
-        .Where(x => x.Name.ToString().Contains("version"))
-        .FirstOrDefault().Value;
-      var snapshortNumberAsString = ($(SnapshotNumber) >= 0 && $(SnapshotNumber) <=9) ? "0" + $(SnapshotNumber) : $(SnapshotNumber).ToString();
-      var reefVersion = Version;
-
-      var srcDir = @"lang\cs\Org.Apache.REEF.Client\Properties";
-      var binDir = @"lang\cs\bin\.netcore";
-      var resxInputPath  = Path.Combine(ProjectFolder, srcDir, "Resources.DotNet.xml");      
-      var resourceDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge.JAR", "net461");
-      var clrDriverDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge");
-      var byteArrayType = ";System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
-      var jarRest = reefVersion + "-shaded.jar" + byteArrayType;
-
-      var dllResources = new Dictionary<string,string>();
-      dllResources.Add("reef_bridge_client", resourceDir + @"\reef-bridge-client-" + jarRest);
-      dllResources.Add("reef_bridge_driver", resourceDir + @"\reef-bridge-java-" + jarRest);
-      dllResources.Add("evaluator", resourceDir + "Org.Apache.REEF.Evaluator.exe" + byteArrayType);
-      dllResources.Add("reef_clrdriver", clrDriverDir + @"\Org.Apache.REEF.Bridge.exe" + byteArrayType);
-      dllResources.Add("ClientJarFullName", "reef-bridge-client-" + reefVersion + "-shaded.jar");
-      dllResources.Add("DriverJarFullName", "reef-bridge-java-" + reefVersion + "-shaded.jar");
-      dllResources.Add("ClrDriverFullName", "Org.Apache.REEF.Bridge.exe");
-      
-      XElement root = XElement.Load(resxInputPath);
-      var resources = root.Descendants().Where(x => x.Name.LocalName == "data").ToList();
-      foreach (var resource in resources)
-      {
-          var resourceName = resource.Attribute("name").Value;
-          string replaceValue;
-          if (dllResources.TryGetValue(resourceName, out replaceValue))
-          {
-              var resourceValue = resource.Descendants().Where(x => x.Name.LocalName == "value").FirstOrDefault();
-              if (resourceValue != null)
-              {
-                  resourceValue.Value = replaceValue;
-              }
-          }
-      }
-      var settings = new XmlWriterSettings
-      {
-          Indent = true,
-          IndentChars = "  ",
-          NewLineChars = "\r\n",
-          NewLineHandling = NewLineHandling.Replace
-      };
-      (new FileInfo(resxOutputPath)).Directory.Create();
-      using (var wr = XmlWriter.Create(resxOutputPath, settings))
-      {
-          root.WriteTo(wr);
-      }
-        ]]>
-      </Code>
-    </Task>
-  </UsingTask>
-  <!--
-      A Target that reWrites client resx to point to correct version of jars
-    -->
-  <Target Name="RewriteClientResources" BeforeTargets="BeforeBuild">
-    <Message Text="Generating temporary resx file" Importance="high" />
-    <UpdateClientResources ProjectFolder="$(REEF_Source_Folder)" DebugOrRelease="$(Configuration)" resxOutputPath="$(TempResxFile)">
-    </UpdateClientResources>
-  </Target>
-  <Target Name="CopyJarFiles" BeforeTargets="RewriteClientResources">
-    <MSBuild Targets="Build" BuildInParallel="$(BuildInParallel)" Properties="Chip=$(Chip);Lang=$(Lang)" Projects="@(ProjectFile)" />
-    <ItemGroup>
-      <MySourceFiles Include="$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge.JAR\$(TargetFramework)\*.jar" />
-    </ItemGroup>
-    <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(TargetDir)%(Filename)%(Extension)')" />
-  </Target>
-  <Target Name="RemovingTempResx" AfterTargets="AfterBuild">
-    <Message Text="Removing temporary resx file" Importance="high"/>
-    <Delete Files="$(TempResxFile)" />
-  </Target>
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.csproj b/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.csproj
index 90c365e..b94fccb 100644
--- a/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.csproj
+++ b/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.csproj
@@ -1,13 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
+to you under the Apache License, Version 2.0 (thee
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,325 +17,50 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{5094C35B-4FDB-4322-AC05-45D684501CBF}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Client</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Client</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Client for REEF.NET</Description>
+    <PackageTags>REEF Client</PackageTags>
+    <!-- Disable default embedded resources as we override this in the project -->
+    <EnableDefaultEmbeddedResourceItems>False</EnableDefaultEmbeddedResourceItems>
   </PropertyGroup>
+  <Import Project="..\build.Library.props" />
   <PropertyGroup>
-    <StartupObject />
+    <TempResxFile Condition="$(TempResxFile) == ''">$(OutputPath)\$(TargetFramework)\Resources.resx</TempResxFile>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <TempResxFile Condition="$(TempResxFile) == ''">$(SolutionDir)bin\$(PlatformTarget)\$(Configuration)\$(AssemblyName)\Resources.resx</TempResxFile>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.Azure.Batch, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Azure.Batch.8.0.1\lib\net452\Microsoft.Azure.Batch.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Azure.KeyVault.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="Microsoft.Data.Edm, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Data.Edm.5.8.2\lib\net40\Microsoft.Data.Edm.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.OData, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Data.OData.5.8.2\lib\net40\Microsoft.Data.OData.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.Services.Client, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Data.Services.Client.5.8.2\lib\net40\Microsoft.Data.Services.Client.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.TransientFaultHandling.Core, Version=5.1.1209.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\TransientFaultHandling.Core.5.1.1209.1\lib\NET4\Microsoft.Practices.TransientFaultHandling.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Rest.ClientRuntime.2.3.10\lib\net452\Microsoft.Rest.ClientRuntime.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime.Azure, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Rest.ClientRuntime.Azure.3.3.10\lib\net452\Microsoft.Rest.ClientRuntime.Azure.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Storage, Version=8.1.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\WindowsAzure.Storage.8.1.3\lib\net45\Microsoft.WindowsAzure.Storage.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.IO.Compression" />
-    <Reference Include="System.IO.Compression.FileSystem" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Net.Http.WebRequest" />
-    <Reference Include="System.Spatial, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Spatial.5.8.2\lib\net40\System.Spatial.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Runtime.Serialization" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="API\AppParameters.cs" />
-    <Compile Include="API\AppParametersBuilder.cs" />
-    <Compile Include="API\ClientFactory.cs" />
-    <Compile Include="API\DriverStatus.cs" />
-    <Compile Include="API\Exceptions\ClasspathException.cs" />
-    <Compile Include="API\Exceptions\JavaNotFoundException.cs" />
-    <Compile Include="API\IREEFClient.cs" />
-    <Compile Include="API\Testing\AbstractAssert.cs" />
-    <Compile Include="API\Testing\IAssert.cs" />
-    <Compile Include="API\Testing\AssertResult.cs" />
-    <Compile Include="API\Testing\ITestResult.cs" />
-    <Compile Include="API\Testing\ITestRunner.cs" />
-    <Compile Include="API\JobParameters.cs" />
-    <Compile Include="API\JobParametersBuilder.cs" />
-    <Compile Include="API\JobRequest.cs" />
-    <Compile Include="API\JobRequestBuilder.cs" />
-    <Compile Include="API\JobRequestBuilderFactory.cs" />
-    <Compile Include="API\Parameters.cs" />
-    <Compile Include="API\TcpPortConfigurationModule.cs" />
-    <Compile Include="Avro\AvroAppSubmissionParameters.cs" />
-    <Compile Include="Avro\AvroJobSubmissionParameters.cs" />
-    <Compile Include="Avro\AzureBatch\AvroAzureBatchJobSubmissionParameters.cs" />
-    <Compile Include="Avro\Local\AvroLocalAppSubmissionParameters.cs" />
-    <Compile Include="Avro\Local\AvroLocalJobSubmissionParameters.cs" />
-    <Compile Include="Avro\YARN\AvroYarnAppSubmissionParameters.cs" />
-    <Compile Include="Avro\YARN\AvroYarnJobSubmissionParameters.cs" />
-    <Compile Include="Avro\YARN\AvroYarnClusterJobSubmissionParameters.cs" />
-    <Compile Include="AzureBatch\AzureBatchRuntimeClientConfiguration.cs" />
-    <Compile Include="AzureBatch\Util\AzureBatchCommandProviderConfiguration.cs" />
-    <Compile Include="AzureBatch\AzureBatchDotNetClient.cs" />
-    <Compile Include="AzureBatch\Storage\AzureStorageClient.cs" />
-    <Compile Include="AzureBatch\Service\AzureBatchService.cs" />
-    <Compile Include="AzureBatch\Util\AzureBatchFileNames.cs" />
-    <Compile Include="AzureBatch\Util\ICommandBuilder.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureBatchAccountKey.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureBatchAccountName.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureBatchAccountUri.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureBatchPoolId.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureStorageAccountKey.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureStorageAccountName.cs" />
-    <Compile Include="AzureBatch\Parameters\AzureStorageContainerName.cs" />
-    <Compile Include="AzureBatch\Parameters\DriverStderrFilePath.cs" />
-    <Compile Include="AzureBatch\Parameters\DriverStdoutFilePath.cs" />
-    <Compile Include="AzureBatch\Parameters\EnableDebugLogging.cs" />
-    <Compile Include="AzureBatch\Parameters\IsWindows.cs" />
-    <Compile Include="AzureBatch\Util\AbstractCommandBuilder.cs" />
-    <Compile Include="AzureBatch\Util\JobJarMaker.cs" />
-    <Compile Include="AzureBatch\Util\LinuxCommandBuilder.cs" />
-    <Compile Include="AzureBatch\Util\WindowsCommandBuilder.cs" />
-    <Compile Include="Common\DotNetFile.cs" />
-    <Compile Include="Common\ClientConstants.cs" />
-    <Compile Include="Common\DriverFolderPreparationHelper.cs" />
-    <Compile Include="Common\EnvironmentDriverConfigurationProviders.cs" />
-    <Compile Include="Common\IFile.cs" />
-    <Compile Include="Common\IResourceArchiveFileGenerator.cs" />
-    <Compile Include="Common\FileSets.cs" />
-    <Compile Include="Common\IJavaClientLauncher.cs" />
-    <Compile Include="Common\IJobSubmissionResult.cs" />
-    <Compile Include="Common\JobSubmissionResult.cs" />
-    <Compile Include="Common\JavaClientLauncher.cs" />
-    <Compile Include="Common\ResourceArchiveFileGenerator.cs" />
-    <Compile Include="Local\LocalClient.cs" />
-    <Compile Include="Local\LocalDriverConfigurationProvider.cs" />
-    <Compile Include="Local\LocalJobSubmissionResult.cs" />
-    <Compile Include="Local\LocalRuntimeClientConfiguration.cs" />
-    <Compile Include="Local\Parameters\LocalRuntimeDirectory.cs" />
-    <Compile Include="Local\Parameters\NumberOfEvaluators.cs" />
-    <Compile Include="Local\TestRunner\FileWritingAssert\FileWritingAssert.cs" />
-    <Compile Include="Local\TestRunner\FileWritingAssert\FileWritingAssertConfiguration.cs" />
-    <Compile Include="Local\TestRunner\FileWritingAssert\Parameters.cs" />
-    <Compile Include="Local\TestRunner\FileWritingAssert\TestResult.cs" />
-    <Compile Include="Local\TestRunner\LocalTestRunner.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="API\Testing\TestRunnerFactory.cs" />
-    <Compile Include="YARN\ApplicationReport.cs" />
-    <Compile Include="YARN\Environment.cs" />
-    <Compile Include="YARN\HDI\HDInsightClientConfiguration.cs" />
-    <Compile Include="YARN\HDI\HDInsightCommandLineEnvironment.cs" />
-    <Compile Include="YARN\HDI\HDInsightCredential.cs" />
-    <Compile Include="YARN\HDI\HDInsightResourceFileRemoteUrlToClusterUrlConverter.cs" />
-    <Compile Include="YARN\HDI\HDInsightUrlProvider.cs" />
-    <Compile Include="YARN\HDI\NamedParameters.cs" />
-    <Compile Include="YARN\IApplicationReport.cs" />
-    <Compile Include="YARN\IdentityResourceFileRemoteUrlToClusterUrlConverter.cs" />
-    <Compile Include="YARN\IResourceFileRemoteUrlToClusterUrlConverter.cs" />
-    <Compile Include="YARN\IYarnCommandLineEnvironment.cs" />
-    <Compile Include="YARN\IYarnJobCommandProvider.cs" />
-    <Compile Include="YARN\IJobResourceUploader.cs" />
-    <Compile Include="YARN\IJobSubmissionDirectoryProvider.cs" />
-    <Compile Include="YARN\IYarnREEFClient.cs" />
-    <Compile Include="YARN\Parameters\DriverMaxMemoryAllicationPoolSizeMB.cs" />
-    <Compile Include="YARN\Parameters\DriverMaxPermSizeMB.cs" />
-    <Compile Include="YARN\Parameters\DriverStderrFilePath.cs" />
-    <Compile Include="YARN\Parameters\DriverStdoutFilePath.cs" />
-    <Compile Include="YARN\Parameters\FileSystemUrl.cs" />
-    <Compile Include="YARN\Parameters\SecurityTokenStrings.cs" />
-    <Compile Include="YARN\RestClient\DataModel\KillApplication.cs" />
-    <Compile Include="YARN\RestClient\HttpClient.cs" />
-    <Compile Include="YARN\RestClient\IDeserializer.cs" />
-    <Compile Include="YARN\RestClient\IHttpClient.cs" />
-    <Compile Include="YARN\RestClient\IRequestFactory.cs" />
-    <Compile Include="YARN\RestClient\IRestClient.cs" />
-    <Compile Include="YARN\RestClient\ISerializer.cs" />
-    <Compile Include="YARN\RestClient\IYarnRestClientCredential.cs" />
-    <Compile Include="YARN\RestClient\Method.cs" />
-    <Compile Include="YARN\RestClient\NullYarnRestClientCredential.cs" />
-    <Compile Include="YARN\RestClient\RequestFactory.cs" />
-    <Compile Include="YARN\RestClient\RestClient.cs" />
-    <Compile Include="YARN\RestClient\RestJsonDeserializer.cs" />
-    <Compile Include="YARN\RestClient\RestJsonSerializer.cs" />
-    <Compile Include="YARN\RestClient\RestRequest.cs" />
-    <Compile Include="YARN\RestClient\RestResponse.cs" />
-    <Compile Include="YARN\RestClient\HttpClientRetryHandler.cs" />
-    <Compile Include="Avro\YARN\SecurityToken.cs" />
-    <Compile Include="YARN\SecurityTokenWriter.cs" />
-    <Compile Include="YARN\WindowsYarnJobCommandProvider.cs" />
-    <Compile Include="YARN\JobResource.cs" />
-    <Compile Include="YARN\JobSubmissionDirectoryProvider.cs" />
-    <Compile Include="YARN\LegacyJobResourceUploader.cs" />
-    <Compile Include="YARN\Parameters\EnableDebugLogging.cs" />
-    <Compile Include="YARN\Parameters\JobSubmissionDirectoryPrefixParameter.cs" />
-    <Compile Include="YARN\Parameters\SecurityTokenParameters.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Acls.cs" />
-    <Compile Include="YARN\RestClient\DataModel\AmContainerSpec.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ApplicationFinalState.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ApplicationTag.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ClusterHaState.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ClusterState.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Commands.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Credentials.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Environment.cs" />
-    <Compile Include="YARN\RestClient\DataModel\KeyValuePair.cs" />
-    <Compile Include="YARN\RestClient\DataModel\LocalResources.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Secrets.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ServiceData.cs" />
-    <Compile Include="YARN\RestClient\DataModel\SubmitApplication.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Tokens.cs" />
-    <Compile Include="YARN\RestClient\IRestRequestExecutor.cs" />
-    <Compile Include="YARN\RestClient\IUrlProvider.cs" />
-    <Compile Include="YARN\RestClient\FileSystemJobResourceUploader.cs" />
-    <Compile Include="YARN\RestClient\MultipleRMUrlProvider.cs" />
-    <Compile Include="YARN\YarnCommandProviderConfiguration.cs" />
-    <Compile Include="YARN\YarnJobSubmissionResult.cs" />
-    <Compile Include="YARN\YARNREEFClient.cs" />
-    <Compile Include="YARN\RestClient\RestRequestExecutor.cs" />
-    <Compile Include="YARN\RestClient\IYarnRMClient.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Application.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Applications.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ApplicationState.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ClusterInfo.cs" />
-    <Compile Include="YARN\RestClient\DataModel\ClusterMetrics.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Error.cs" />
-    <Compile Include="YARN\RestClient\DataModel\Resouce.cs" />
-    <Compile Include="YARN\RestClient\DataModel\NewApplication.cs" />
-    <Compile Include="YARN\RestClient\YarnClient.cs" />
-    <Compile Include="YARN\RestClient\YarnClientNoCancellationToken.cs" />
-    <Compile Include="YARN\RestClient\YarnConfigurationUrlProvider.cs" />
-    <Compile Include="YARN\RestClient\YarnRestAPIException.cs" />
-    <Compile Include="YARN\YARNClientConfiguration.cs" />
-    <Compile Include="YARN\YarnCommandLineEnvironment.cs" />
-    <Compile Include="YARN\YarnREEFDotNetClient.cs" />
-    <Compile Include="YARN\YarnREEFDotNetParamSerializer.cs" />
-    <Compile Include="YARN\YarnREEFParamSerializer.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Avro\README.md" />
-    <None Include="Org.Apache.REEF.Client.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj">
-      <Project>{4e69d40a-26d6-4d4a-b96d-729946c07fe1}</Project>
-      <Name>Org.Apache.REEF.Bridge</Name>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
-      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{DEC0F0A8-DBEF-4EBF-B69C-E2369C15ABF1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-  </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="$(TempResxFile)">
       <Generator>ResXFileCodeGenerator</Generator>
-      <Visible>false</Visible>
     </EmbeddedResource>
   </ItemGroup>
-  <ItemGroup />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-  <!--begin jar reference-->
-  <PropertyGroup>
-    <BeforeBuildDependsOn>
-      $(BeforeBuildDependsOn);
-      RewriteClientResources;
-    </BeforeBuildDependsOn>
-  </PropertyGroup>
+  <ItemGroup>
+    <PackageReference Include="Azure.Batch" Version="8.0.0" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="EnterpriseLibrary.TransientFaultHandling.Core" Version="$(TransientFaultHandlingVersion)" />
+    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
+    <PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.3.0" />
+  </ItemGroup>
+
+  <!-- Project Reference conditionals allow for targeting specific projects based upon the target framework. -->
+  <ItemGroup Condition="'$(TargetFramework)' == 'net461'">
+    <ProjectReference Include="..\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj" PrivateAssets="All" />
+  </ItemGroup>
+  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
+    <ProjectReference Include="..\Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.csproj" PrivateAssets="All" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
+  </ItemGroup>
+  <Import Project="..\build.targets" />
   <!--
        ########################################################################
          ReWrite client resx to point to correct version of jars
@@ -355,7 +82,8 @@
       <Using Namespace="System.Xml" />
       <Using Namespace="System.Linq" />
       <Using Namespace="System.Xml.Linq" />
-      <Code Type="Fragment" Language="cs"><![CDATA[
+      <Code Type="Fragment" Language="cs">
+        <![CDATA[
       var Version = XDocument.Load(Path.Combine(ProjectFolder, "pom.xml")).Descendants()
         .Where(x => x.Name.ToString().Contains("version"))
         .FirstOrDefault().Value;
@@ -363,9 +91,9 @@
       var reefVersion = Version;
 
       var srcDir = @"lang\cs\Org.Apache.REEF.Client\Properties";
-      var binDir = @"lang\cs\bin\x64";
+      var binDir = @"lang\cs\bin\.netcore";
       var resxInputPath  = Path.Combine(ProjectFolder, srcDir, "Resources.xml");      
-      var resourceDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge.JAR");
+      var resourceDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge.JAR", "net461");
       var clrDriverDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge");
       var byteArrayType = ";System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
       var jarRest = reefVersion + "-shaded.jar" + byteArrayType;
@@ -406,27 +134,27 @@
       {
           root.WriteTo(wr);
       }
-        ]]></Code>
+        ]]>
+      </Code>
     </Task>
   </UsingTask>
   <!--
       A Target that reWrites client resx to point to correct version of jars
     -->
-  <Target Name="CopyJarFiles">
-    <MSBuild Targets="Build" BuildInParallel="$(BuildInParallel)" Properties="Chip=$(Chip);Lang=$(Lang)" Projects="@(ProjectFile)" />
-    <ItemGroup>
-      <MySourceFiles Include="$(Bindir)\**\Org.Apache.REEF.Bridge.JAR\*.jar" />
-    </ItemGroup>
-    <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(TargetDir)%(Filename)%(Extension)')" />
-  </Target>
-  <Target Name="RewriteClientResources" DependsOnTargets="CopyJarFiles">
+  <Target Name="RewriteClientResources" BeforeTargets="BeforeBuild">
+    <Message Text="Generating temporary resx file" Importance="high" />
     <UpdateClientResources ProjectFolder="$(REEF_Source_Folder)" DebugOrRelease="$(Configuration)" resxOutputPath="$(TempResxFile)">
     </UpdateClientResources>
   </Target>
-  <Target Name="AfterBuild">
+  <Target Name="CopyJarFiles" BeforeTargets="RewriteClientResources">
+    <MSBuild Targets="Build" BuildInParallel="$(BuildInParallel)" Properties="Chip=$(Chip);Lang=$(Lang)" Projects="@(ProjectFile)" />
+    <ItemGroup>
+      <MySourceFiles Include="$(BinDir)$(Configuration)\Org.Apache.REEF.Bridge.JAR\$(TargetFramework)\*.jar" />
+    </ItemGroup>
+    <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(TargetDir)%(Filename)%(Extension)')" />
+  </Target>
+  <Target Name="RemovingTempResx" AfterTargets="AfterBuild">
+    <Message Text="Removing temporary resx file" Importance="high"/>
     <Delete Files="$(TempResxFile)" />
-    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
   </Target>
-  <Target Name="BeforeBuild" DependsOnTargets="$(BeforeBuildDependsOn);RewriteClientResources">
-  </Target>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.nuspec b/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.nuspec
deleted file mode 100644
index 34d6847..0000000
--- a/lang/cs/Org.Apache.REEF.Client/Org.Apache.REEF.Client.nuspec
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Client</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Client</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Client for REEF.NET</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <dependencies>
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Network" version="$version$" />
-      <dependency id="Org.Apache.REEF.Driver" version="$version$" />
-      <dependency id="Org.Apache.REEF.Evaluator" version="$version$" />
-      <dependency id="Org.Apache.REEF.Examples" version="$version$" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="TransientFaultHandling.Core" version="5.1.1209.1" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Client\Org.Apache.REEF.Client.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Client\Org.Apache.REEF.Client.pdb" target="lib\net45" />
-  </files>
-</package>
-
diff --git a/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 3c33105..0000000
--- a/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Client.Tests")]
-
-// Allow NSubstitute to create proxy implementations
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
-
diff --git a/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.cs
index e7150cb..3c33105 100644
--- a/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Client/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,36 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Client")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Client")]
+// Allow the tests access to `internal` APIs
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Client.Tests")]
 
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8717944c-5e99-4f95-a916-5ca3c3f8e697")]
+// Allow NSubstitute to create proxy implementations
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
 
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
- [assembly: InternalsVisibleTo("Org.Apache.REEF.Client.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-
-// Make internals visible to NSubstitute assembly for mocking in unit tests
- [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=00240000048000009" +
-                               "40000000602000000240000525341310004000001000100c547cac37a" +
-                               "bd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc07" +
-                               "34aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f71724" +
-                               "1550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15" +
-                               "605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3" +
-                               "113e92484cf7045cc7")]
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Client/Properties/Resources.DotNet.xml b/lang/cs/Org.Apache.REEF.Client/Properties/Resources.DotNet.xml
deleted file mode 100644
index 8bab319..0000000
--- a/lang/cs/Org.Apache.REEF.Client/Properties/Resources.DotNet.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<!--
-This file is used to embed JAR files to client dll
--->
-<root>
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ClientJarFullName" xml:space="preserve">
-    <value>reef-bridge-client-0.17.0-SNAPSHOT-shaded.jar</value>
-  </data>
-  <data name="DriverJarFullName" xml:space="preserve">
-    <value>reef-bridge-java-0.17.0-SNAPSHOT-shaded.jar</value>
-  </data>
-  <data name="ClrDriverFullName" xml:space="preserve">
-    <value>Org.Apache.REEF.ClrDriver.exe</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="reef_bridge_client" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>E:\src\reef\lang\cs\bin\x64\Debug\Org.Apache.REEF.Bridge.JAR\reef-bridge-client-0.17.0-SNAPSHOT-shaded.jar;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="reef_bridge_driver" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>E:\src\reef\lang\cs\bin\x64\Debug\Org.Apache.REEF.Bridge.JAR\reef-bridge-java-0.17.0-SNAPSHOT-shaded.jar;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="reef_clrdriver" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>E:\src\reef\lang\cs\bin\x64\Debug\Org.Apache.REEF.ClrDriver\Org.Apache.REEF.ClrDriver.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Client/packages.config b/lang/cs/Org.Apache.REEF.Client/packages.config
deleted file mode 100644
index 094733d..0000000
--- a/lang/cs/Org.Apache.REEF.Client/packages.config
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Azure.Batch" version="8.0.1" targetFramework="net452" />
-  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net452" />
-  <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime" version="2.3.10" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.10" targetFramework="net452" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net452" />
-  <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net452" />
-  <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net452" />
-  <package id="System.Net.Requests" version="4.0.11" targetFramework="net452" />
-  <package id="System.Spatial" version="5.8.2" targetFramework="net452" />
-  <package id="TransientFaultHandling.Core" version="5.1.1209.1" targetFramework="net45" />
-  <package id="WindowsAzure.Storage" version="8.1.3" targetFramework="net452" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.DotNet.csproj
deleted file mode 100644
index bd2b3f9..0000000
--- a/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.DotNet.csproj
+++ /dev/null
@@ -1,32 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Common.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
-    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="$(SolutionDir)\build.DotNetTest.targets" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.csproj b/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.csproj
index a59282b..a4c2164 100644
--- a/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Common.Tests/Org.Apache.REEF.Common.Tests.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -15,70 +15,18 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{F1A3495C-2CBD-4F3B-AEDC-9C1A43D9F238}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Common.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Common.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
+    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Metrics\DefaultMetricSourceTests.cs" />
-    <Compile Include="Metrics\ImmutableMetricImplTests.cs" />
-    <Compile Include="Metrics\ImmutableMetricTest.cs" />
-    <Compile Include="Metrics\MetricsCollectorTests.cs" />
-    <Compile Include="Metrics\MetricTestUtils.cs" />
-    <Compile Include="Metrics\MutableMetricTest.cs" />
-    <Compile Include="Metrics\SnapshotRequestTest.cs" />
-    <Compile Include="Metrics\TestMetricsTag.cs" />
-    <Compile Include="Telemetry\CounterTests.cs" />
-    <Compile Include="TestHttpSerialization.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="$(SolutionDir)\build.Test.targets" />
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Common.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Common.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 06bc60f..0000000
--- a/lang/cs/Org.Apache.REEF.Common.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Common.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Common.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("56634b2e-ff34-4c06-99f4-3c1388093e59")]
diff --git a/lang/cs/Org.Apache.REEF.Common.Tests/packages.config b/lang/cs/Org.Apache.REEF.Common.Tests/packages.config
deleted file mode 100644
index 3b963f3..0000000
--- a/lang/cs/Org.Apache.REEF.Common.Tests/packages.config
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.DotNet.csproj b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.DotNet.csproj
deleted file mode 100644
index 8f13175..0000000
--- a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.DotNet.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Common</AssemblyName>
-    <Description>REEF Common Infrastructure</Description>
-    <PackageTags>REEF Common Infrastructure</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
index 633bb33..c95548c 100644
--- a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
+++ b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,283 +17,24 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{545A0582-4105-44CE-B99C-B1379514A630}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Common</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Common</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>REEF Common Infrastructure</Description>
+    <PackageTags>REEF Common Infrastructure</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Reactive.Core">
-      <HintPath>$(PackagesDir)\System.Reactive.Core.$(SystemReactiveVersion)\lib\net45\System.Reactive.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Reactive.Interfaces">
-      <HintPath>$(PackagesDir)\System.Reactive.Interfaces.$(SystemReactiveVersion)\lib\net45\System.Reactive.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Xml" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
+    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Api\AbstractFailure.cs" />
-    <Compile Include="Api\IAbstractFailure.cs" />
-    <Compile Include="Api\IFailure.cs" />
-    <Compile Include="Avro\AvroDriverInfo.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Avro\AvroFailedTask.cs" />
-    <Compile Include="Avro\AvroHttpRequest.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Avro\AvroHttpSerializer.cs" />
-    <Compile Include="Avro\AvroJsonSerializer.cs" />
-    <Compile Include="Avro\AvroReefServiceInfo.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Avro\HeaderEntry.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Catalog\Capabilities\CPU.cs" />
-    <Compile Include="Catalog\Capabilities\ICapability.cs" />
-    <Compile Include="Catalog\Capabilities\RAM.cs" />
-    <Compile Include="Catalog\INodeDescriptor.cs" />
-    <Compile Include="Catalog\IRackDescriptor.cs" />
-    <Compile Include="Catalog\IResourceCatalog.cs" />
-    <Compile Include="Catalog\NodeDescriptorImpl.cs" />
-    <Compile Include="Catalog\RackDescriptorImpl.cs" />
-    <Compile Include="Catalog\ResourceCatalogImpl.cs" />
-    <Compile Include="Constants.cs" />
-    <Compile Include="Context\ContextConfiguration.cs" />
-    <Compile Include="Context\ContextConfigurationOptions.cs" />
-    <Compile Include="Context\ContextMessage.cs" />
-    <Compile Include="Context\Defaults\DefaultContextMessageSource.cs" />
-    <Compile Include="Context\Defaults\DefaultContextStartHandler.cs" />
-    <Compile Include="Context\Defaults\DefaultContextStopHandler.cs" />
-    <Compile Include="Context\IContextMessage.cs" />
-    <Compile Include="Context\IContextMessageHandler.cs" />
-    <Compile Include="Context\IContextMessageSource.cs" />
-    <Compile Include="Evaluator\DriverConnectionConfigurationProviders\DefaultDriverReconnConfigProvider.cs" />
-    <Compile Include="Evaluator\DefaultLocalHttpDriverConnection.cs" />
-    <Compile Include="Evaluator\DefaultYarnClusterHttpDriverConnection.cs" />
-    <Compile Include="Evaluator\DefaultYarnOneBoxHttpDriverConnection.cs" />
-    <Compile Include="Evaluator\DriverConnectionConfigurationProviders\LocalHttpDriverReconnConfigProvider.cs" />
-    <Compile Include="Evaluator\DriverConnectionConfigurationProviders\YarnOneBoxHttpDriverReconnConfigProvider.cs" />
-    <Compile Include="Evaluator\DriverInformation.cs" />
-    <Compile Include="Evaluator\EvaluatorOperationState.cs" />
-    <Compile Include="Evaluator\EvaluatorRuntimeState.cs" />
-    <Compile Include="Evaluator\EvaluatorType.cs" />
-    <Compile Include="Evaluator\IDriverConnection.cs" />
-    <Compile Include="Evaluator\DriverConnectionConfigurationProviders\IDriverReconnConfigProvider.cs" />
-    <Compile Include="Evaluator\MissingDriverConnection.cs" />
-    <Compile Include="Evaluator\Parameters\EvaluatorConfigurationProviders.cs" />
-    <Compile Include="Evaluator\DriverConnectionConfigurationProviders\YarnClusterHttpDriverReconnConfigProvider.cs" />
-    <Compile Include="Events\IContextStart.cs" />
-    <Compile Include="Events\IContextStop.cs" />
-    <Compile Include="Exceptions\JobException.cs" />
-    <Compile Include="Exceptions\RecoverableNetworkException.cs" />
-    <Compile Include="Exceptions\NonSerializableEvaluatorException.cs" />
-    <Compile Include="Exceptions\NonSerializableTaskException.cs" />
-    <Compile Include="Files\PathUtilities.cs" />
-    <Compile Include="IContextAndTaskSubmittable.cs" />
-    <Compile Include="IContextSubmittable.cs" />
-    <Compile Include="Io\INameClient.cs" />
-    <Compile Include="Io\NameAssignment.cs" />
-    <Compile Include="Io\NamingConfiguration.cs" />
-    <Compile Include="Io\NamingConfigurationOptions.cs" />
-    <Compile Include="Io\TcpPortConfigurationProvider.cs" />
-    <Compile Include="Jar\ResourceHelper.cs" />
-    <Compile Include="ITaskSubmittable.cs" />
-    <Compile Include="Client\Parameters\DriverConfigurationProviders.cs" />
-    <Compile Include="Metrics\Api\ImmutableMetricImpl.cs" />
-    <Compile Include="Metrics\Api\IImmutableMetric.cs" />
-    <Compile Include="Metrics\Api\IMetricsCollector.cs" />
-    <Compile Include="Metrics\Api\IMetricsFilter.cs" />
-    <Compile Include="Metrics\Api\IMetricsInfo.cs" />
-    <Compile Include="Metrics\Api\IMetricsRecord.cs" />
-    <Compile Include="Metrics\Api\IMetricsRecordBuilder.cs" />
-    <Compile Include="Metrics\Api\IMetricsSource.cs" />
-    <Compile Include="Metrics\Api\IMetricsSystem.cs" />
-    <Compile Include="Metrics\Api\IMetricsVisitor.cs" />
-    <Compile Include="Metrics\Api\MetricsInfoImpl.cs" />
-    <Compile Include="Metrics\Api\MetricsException.cs" />
-    <Compile Include="Metrics\Api\MetricsTag.cs" />
-    <Compile Include="Metrics\Api\MetricType.cs" />
-    <Compile Include="Metrics\Api\SnapshotRequest.cs" />
-    <Compile Include="Metrics\MetricsSystem\DefaultMetricsFilter.cs" />
-    <Compile Include="Metrics\MetricsSystem\IMetricsCollectorMutable.cs" />
-    <Compile Include="Metrics\MetricsSystem\ImmutableCounter.cs" />
-    <Compile Include="Metrics\MetricsSystem\ImmutableDoubleGauge.cs" />
-    <Compile Include="Metrics\MetricsSystem\ImmutableLongGauge.cs" />
-    <Compile Include="Metrics\MetricsSystem\MetricsCollectorMutable.cs" />
-    <Compile Include="Metrics\MetricsSystem\MetricsRecord.cs" />
-    <Compile Include="Metrics\MetricsSystem\MetricsRecordBuilder.cs" />
-    <Compile Include="Metrics\MetricsSystem\MetricsSystemConstants.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\DefaultMetricsFactoryImpl.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\DefaultMetricsSourceConfiguration.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\DefaultMetricsSourceImpl.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\ICounter.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IDoubleGauge.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IExtendedMutableMetric.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\ILongGauge.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IMetricsFactory.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IMutableMetric.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IRate.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IStat.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableCounter.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableDoubleGauge.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableLongGauge.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableMetricBase.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\IMetricContainer.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableMetricContainer.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableRate.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\MutableStat.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\DefaultMetricsSourceParameters.cs" />
-    <Compile Include="Metrics\MutableMetricsLayer\StatsHelperClass.cs" />
-    <Compile Include="Poison\PoisonedEventHandler.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Protobuf\ReefProtocol\ClientRuntime.pb.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\ReefProtocol\DriverRuntime.pb.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\ReefProtocol\EvaluatorHeartbeatProtoCodec.cs" />
-    <Compile Include="Protobuf\ReefProtocol\EvaluatorRunTime.pb.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\ReefProtocol\REEFMessageCodec.cs" />
-    <Compile Include="Protobuf\ReefProtocol\ReefProtocol.pb.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\ReefProtocol\ReefService.pb.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\ReefProtocol\Serializer.cs" />
-    <Compile Include="Files\REEFFileNames.cs" />
-    <Compile Include="Runtime\Evaluator\Constants.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextClientCodeException.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextException.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextLifeCycle.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextManager.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextRuntime.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextStartHandlerException.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextStartImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextStopHandlerException.cs" />
-    <Compile Include="Runtime\Evaluator\Context\ContextStopImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Context\RootContextLauncher.cs" />
-    <Compile Include="Runtime\Evaluator\EvaluatorExitLogger.cs" />
-    <Compile Include="Runtime\Evaluator\EvaluatorRuntime.cs" />
-    <Compile Include="Runtime\Evaluator\EvaluatorSettings.cs" />
-    <Compile Include="Runtime\Evaluator\HeartBeatManager.cs" />
-    <Compile Include="Runtime\Evaluator\IHeartBeatManager.cs" />
-    <Compile Include="Runtime\Evaluator\Parameters\EvaluatorHeartbeatPeriodInMs.cs" />
-    <Compile Include="Runtime\Evaluator\Parameters\HeartbeatMaxRetryForNonRecoveryMode.cs" />
-    <Compile Include="Runtime\Evaluator\Parameters\HeartbeatMaxRetry.cs" />
-    <Compile Include="Runtime\Evaluator\PIDStoreHandler.cs" />
-    <Compile Include="Runtime\Evaluator\ReefMessageProtoObserver.cs" />
-    <Compile Include="Runtime\Evaluator\Task\CloseEventImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Task\DriverMessageImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Task\SuspendEventImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskClientCodeException.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskLifeCycle.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskRuntime.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskStartHandlerException.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskStartImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskState.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskStatus.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskStopHandlerException.cs" />
-    <Compile Include="Runtime\Evaluator\Task\TaskStopImpl.cs" />
-    <Compile Include="Runtime\Evaluator\Utils\NamedparameterAlias.cs" />
-    <Compile Include="runtime\MachineStatus.cs" />
-    <Compile Include="Runtime\RuntimeName.cs" />
-    <Compile Include="Services\ServiceConfiguration.cs" />
-    <Compile Include="Tasks\Defaults\DefaultTaskCloseHandler.cs" />
-    <Compile Include="Tasks\Defaults\DefaultDriverConnectionMessageHandler.cs" />
-    <Compile Include="Tasks\Defaults\DefaultDriverMessageHandler.cs" />
-    <Compile Include="Tasks\Defaults\DefaultSuspendHandler.cs" />
-    <Compile Include="Tasks\Defaults\DefaultTaskMessageSource.cs" />
-    <Compile Include="Tasks\DriverConnectionState.cs" />
-    <Compile Include="Tasks\DriverConnectionMessageImpl.cs" />
-    <Compile Include="Tasks\Events\ICloseEvent.cs" />
-    <Compile Include="Tasks\Events\IDriverMessage.cs" />
-    <Compile Include="Tasks\Events\ISuspendEvent.cs" />
-    <Compile Include="Tasks\Events\ITaskStart.cs" />
-    <Compile Include="Tasks\Events\ITaskStop.cs" />
-    <Compile Include="Tasks\Exceptions\TaskCloseHandlerNotBoundException.cs" />
-    <Compile Include="Tasks\IDriverConnectionMessageHandler.cs" />
-    <Compile Include="Tasks\IDriverMessageHandler.cs" />
-    <Compile Include="Tasks\IDriverConnectionMessage.cs" />
-    <Compile Include="Tasks\ITask.cs" />
-    <Compile Include="Tasks\ITaskMessageSource.cs" />
-    <Compile Include="Tasks\TaskConfiguration.cs" />
-    <Compile Include="Tasks\TaskConfigurationOptions.cs" />
-    <Compile Include="Tasks\TaskMessage.cs" />
-    <Compile Include="Telemetry\Counter.cs" />
-    <Compile Include="Telemetry\CounterData.cs" />
-    <Compile Include="Telemetry\CountersData.cs" />
-    <Compile Include="Telemetry\Counters.cs" />
-    <Compile Include="Telemetry\CounterSinkThreshold.cs" />
-    <Compile Include="Telemetry\DefaultMetricsSink.cs" />
-    <Compile Include="Telemetry\DriverMetrics.cs" />
-    <Compile Include="Telemetry\DriverMetricsObserverConfigurationModule.cs" />
-    <Compile Include="Telemetry\DriverMetricsObservers.cs" />
-    <Compile Include="Telemetry\EvaluatorMetrics.cs" />
-    <Compile Include="Telemetry\ICounter.cs" />
-    <Compile Include="Telemetry\ICounters.cs" />
-    <Compile Include="Telemetry\IDriverMetrics.cs" />
-    <Compile Include="Telemetry\IEvaluatorMetrics.cs" />
-    <Compile Include="Telemetry\IMetricsSink.cs" />
-    <Compile Include="Telemetry\MessageSenderConfigurationModule.cs" />
-    <Compile Include="Telemetry\MetricSinks.cs" />
-    <Compile Include="Telemetry\MetricsMessageSender.cs" />
-    <Compile Include="Telemetry\MetricsService.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Avro\README.md" />
-    <None Include="Org.Apache.REEF.Common.nuspec" />
-    <None Include="packages.config" />
-    <None Include="Protobuf\Proto\client_runtime.proto" />
-    <None Include="Protobuf\Proto\driver_runtime.proto" />
-    <None Include="Protobuf\Proto\evaluator_runtime.proto" />
-    <None Include="Protobuf\Proto\reef_protocol.proto" />
-    <None Include="Protobuf\Proto\reef_service_protos.proto" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets" />
+</Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.nuspec b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.nuspec
deleted file mode 100644
index f792633..0000000
--- a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.nuspec
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Common</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Common</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Reef Common Infrastructure</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>Reef Common Infrastructure</tags>
-    <dependencies>
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Common\Org.Apache.REEF.Common.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Common\Org.Apache.REEF.Common.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index bf01667..0000000
--- a/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-
-// Common and Evaluator share APIs that should not be exposed to the user
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator")]
-
-// Common and Driver share APIs that should not be exposed to the user
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Driver")]
-
-// Common and IO share APIs that should not be exposed to the user
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IO")]
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Common.Tests")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator.Tests")]
-
-// Allow NSubstitute to create proxy implementations
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
-
diff --git a/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.cs
index d126a7e..bf01667 100644
--- a/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Common/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,62 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Common")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Common")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("a810ee4a-fe13-4536-9e9c-5275b16e0842")]
 
 // Common and Evaluator share APIs that should not be exposed to the user
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator")]
 
 // Common and Driver share APIs that should not be exposed to the user
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Driver, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Driver")]
 
 // Common and IO share APIs that should not be exposed to the user
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IO, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.IO")]
 
 // Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Common.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Common.Tests")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator.Tests")]
 
 // Allow NSubstitute to create proxy implementations
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=002400000480000" +
- "0940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a36" +
- "02f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0ba" +
- "c1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924c" +
- "ceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
\ No newline at end of file
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
+
diff --git a/lang/cs/Org.Apache.REEF.Common/packages.config b/lang/cs/Org.Apache.REEF.Common/packages.config
deleted file mode 100644
index c0664c3..0000000
--- a/lang/cs/Org.Apache.REEF.Common/packages.config
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.Reactive.Core" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reactive.Interfaces" version="3.1.1" targetFramework="net451" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.DotNet.sln b/lang/cs/Org.Apache.REEF.DotNet.sln
deleted file mode 100644
index 3d612f1..0000000
--- a/lang/cs/Org.Apache.REEF.DotNet.sln
+++ /dev/null
@@ -1,224 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 12.00

-# Visual Studio 15

-VisualStudioVersion = 15.0.27130.2027

-MinimumVisualStudioVersion = 10.0.40219.1

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.REEF.Bridge.DotNet", "Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.DotNet.vcxproj", "{6C7325D1-EBB6-4642-B34F-B66F46152230}"

-	ProjectSection(ProjectDependencies) = postProject

-		{4AFF480F-006F-4229-8565-DB8F0E5F0C1D} = {4AFF480F-006F-4229-8565-DB8F0E5F0C1D}

-		{448A0D5F-A8DE-4CAA-8224-0A9A63A9392E} = {448A0D5F-A8DE-4CAA-8224-0A9A63A9392E}

-	EndProjectSection

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Bridge.JAR.DotNet", "Org.Apache.REEF.Bridge.JAR\Org.Apache.REEF.Bridge.JAR.DotNet.csproj", "{448A0D5F-A8DE-4CAA-8224-0A9A63A9392E}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Utilities.DotNet", "Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj", "{FE4CEA75-2F26-4C97-B256-375AA698B4A9}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Tang.DotNet", "Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj", "{16E1218C-9A3C-49E2-A939-C29944BBB72E}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Wake.DotNet", "Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj", "{C7314C70-7D05-4A77-B442-712712C60E16}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Wake.Tests.DotNet", "Org.Apache.REEF.Wake.Tests\Org.Apache.REEF.Wake.Tests.DotNet.csproj", "{1E2B189D-239E-419F-BA09-2A3B28EF98EB}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Common.DotNet", "Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj", "{F92D4129-C094-458D-8DFE-B1454A62DA0F}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Examples.DotNet", "Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj", "{4C617764-FD55-4915-BACA-29D88A6B7C55}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Network.DotNet", "Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj", "{E1CB058B-DFAC-48CB-818E-4790D2C1701F}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Network.Examples.DotNet", "Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.DotNet.csproj", "{8DF28709-0405-4EF9-A525-19D177032073}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Network.Tests.DotNet", "Org.Apache.REEF.Network.Tests\Org.Apache.REEF.Network.Tests.DotNet.csproj", "{C61EDCD2-36AB-4F46-8886-40E6BDE05FAC}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Tang.Examples.DotNet", "Org.Apache.REEF.Tang.Examples\Org.Apache.REEF.Tang.Examples.DotNet.csproj", "{421744DE-5FB7-4694-98A7-00E4248A8B8C}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Tang.Tests.DotNet", "Org.Apache.REEF.Tang.Tests\Org.Apache.REEF.Tang.Tests.DotNet.csproj", "{6AB95745-BE93-4BF0-B3D3-C99EAB716F6B}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Tang.Tools.DotNet", "Org.Apache.REEF.Tang.Tools\Org.Apache.REEF.Tang.Tools.DotNet.csproj", "{558927C3-045B-405D-A978-9E89D50BB51A}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.IO.DotNet", "Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj", "{E68A8740-AEA1-423E-B32B-E873F787CF60}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.IO.Tests.DotNet", "Org.Apache.REEF.IO.Tests\Org.Apache.REEF.IO.Tests.DotNet.csproj", "{2C11BA8F-9F2D-4A94-B9E1-6F7CC2F99A96}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Evaluator.DotNet", "Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj", "{74A9ED6D-EE76-4DFF-A921-F6D761C2CB7A}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Driver.DotNet", "Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj", "{4AFF480F-006F-4229-8565-DB8F0E5F0C1D}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Client.DotNet", "Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj", "{A23F679F-233A-41A1-9964-61A0576E5D93}"

-	ProjectSection(ProjectDependencies) = postProject

-		{6C7325D1-EBB6-4642-B34F-B66F46152230} = {6C7325D1-EBB6-4642-B34F-B66F46152230}

-	EndProjectSection

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Client.Tests.DotNet", "Org.Apache.REEF.Client.Tests\Org.Apache.REEF.Client.Tests.DotNet.csproj", "{C3F0F0F8-0001-44C3-998F-89992361FA43}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Common.Tests.DotNet", "Org.Apache.REEF.Common.Tests\Org.Apache.REEF.Common.Tests.DotNet.csproj", "{EB9E67A8-0D79-4355-8699-724FF8F40D39}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Examples.HelloREEF.DotNet", "Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.DotNet.csproj", "{D5E2987D-234B-4EAB-85FA-BB377FE63C42}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.IMRU.DotNet", "Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.DotNet.csproj", "{80036B79-DAF4-4EDD-854E-1ADCBEBEB803}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.IMRU.Examples.DotNet", "Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.DotNet.csproj", "{880CF3D8-B8A8-4350-A067-50A589563848}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.IMRU.Tests.DotNet", "Org.Apache.REEF.IMRU.Tests\Org.Apache.REEF.IMRU.Tests.DotNet.csproj", "{CF4985C6-A06B-4F20-B5C3-489889170DB7}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Evaluator.Tests.DotNet", "Org.Apache.REEF.Evaluator.Tests\Org.Apache.REEF.Evaluator.Tests.DotNet.csproj", "{F98C05F8-584B-4BA1-ABC1-74C04B03932D}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Examples.AllHandlers.DotNet", "Org.Apache.REEF.Examples.AllHandlers\Org.Apache.REEF.Examples.AllHandlers.DotNet.csproj", "{704D00D3-9B85-46E5-BA68-7DE9CC484AA8}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Examples.DriverRestart.DotNet", "Org.Apache.REEF.Examples.DriverRestart\Org.Apache.REEF.Examples.DriverRestart.DotNet.csproj", "{8E4F8CA1-26FF-4877-8446-0312F1CBDB85}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.IO.TestClient.DotNet", "Org.Apache.REEF.IO.TestClient\Org.Apache.REEF.IO.TestClient.DotNet.csproj", "{D9F9E9BA-DCFF-44CB-81E8-91E5FF5BADBA}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Network.Examples.Client.DotNet", "Org.Apache.REEF.Network.Examples.Client\Org.Apache.REEF.Network.Examples.Client.DotNet.csproj", "{C22416C6-AF4C-47C6-BBE1-EF23D981AA44}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.Tests.DotNet", "Org.Apache.REEF.Tests\Org.Apache.REEF.Tests.DotNet.csproj", "{C80B4A96-BAAD-4526-921C-FB5DADBC135E}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Org.Apache.REEF.FatNuGet.DotNet", "Org.Apache.REEF.FatNuGet\Org.Apache.REEF.FatNuGet.DotNet.csproj", "{F7D5EAB5-65F8-45B5-9318-60EC311E08C6}"

-EndProject

-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}}") = "Org.Apache.REEF.Bridge.CLR.DotNet", "Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.DotNet.csproj", "{81575917-C673-4E6F-9CF1-0DD35FC5E717}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|x64 = Debug|x64

-		Release|x64 = Release|x64

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{6C7325D1-EBB6-4642-B34F-B66F46152230}.Debug|x64.ActiveCfg = Debug|x64

-		{6C7325D1-EBB6-4642-B34F-B66F46152230}.Debug|x64.Build.0 = Debug|x64

-		{6C7325D1-EBB6-4642-B34F-B66F46152230}.Release|x64.ActiveCfg = Release|x64

-		{6C7325D1-EBB6-4642-B34F-B66F46152230}.Release|x64.Build.0 = Release|x64

-		{448A0D5F-A8DE-4CAA-8224-0A9A63A9392E}.Debug|x64.ActiveCfg = Debug|x64

-		{448A0D5F-A8DE-4CAA-8224-0A9A63A9392E}.Debug|x64.Build.0 = Debug|x64

-		{448A0D5F-A8DE-4CAA-8224-0A9A63A9392E}.Release|x64.ActiveCfg = Release|x64

-		{448A0D5F-A8DE-4CAA-8224-0A9A63A9392E}.Release|x64.Build.0 = Release|x64

-		{FE4CEA75-2F26-4C97-B256-375AA698B4A9}.Debug|x64.ActiveCfg = Debug|x64

-		{FE4CEA75-2F26-4C97-B256-375AA698B4A9}.Debug|x64.Build.0 = Debug|x64

-		{FE4CEA75-2F26-4C97-B256-375AA698B4A9}.Release|x64.ActiveCfg = Release|x64

-		{FE4CEA75-2F26-4C97-B256-375AA698B4A9}.Release|x64.Build.0 = Release|x64

-		{16E1218C-9A3C-49E2-A939-C29944BBB72E}.Debug|x64.ActiveCfg = Debug|x64

-		{16E1218C-9A3C-49E2-A939-C29944BBB72E}.Debug|x64.Build.0 = Debug|x64

-		{16E1218C-9A3C-49E2-A939-C29944BBB72E}.Release|x64.ActiveCfg = Release|x64

-		{16E1218C-9A3C-49E2-A939-C29944BBB72E}.Release|x64.Build.0 = Release|x64

-		{C7314C70-7D05-4A77-B442-712712C60E16}.Debug|x64.ActiveCfg = Debug|x64

-		{C7314C70-7D05-4A77-B442-712712C60E16}.Debug|x64.Build.0 = Debug|x64

-		{C7314C70-7D05-4A77-B442-712712C60E16}.Release|x64.ActiveCfg = Release|x64

-		{C7314C70-7D05-4A77-B442-712712C60E16}.Release|x64.Build.0 = Release|x64

-		{1E2B189D-239E-419F-BA09-2A3B28EF98EB}.Debug|x64.ActiveCfg = Debug|x64

-		{1E2B189D-239E-419F-BA09-2A3B28EF98EB}.Debug|x64.Build.0 = Debug|x64

-		{1E2B189D-239E-419F-BA09-2A3B28EF98EB}.Release|x64.ActiveCfg = Release|x64

-		{1E2B189D-239E-419F-BA09-2A3B28EF98EB}.Release|x64.Build.0 = Release|x64

-		{F92D4129-C094-458D-8DFE-B1454A62DA0F}.Debug|x64.ActiveCfg = Debug|x64

-		{F92D4129-C094-458D-8DFE-B1454A62DA0F}.Debug|x64.Build.0 = Debug|x64

-		{F92D4129-C094-458D-8DFE-B1454A62DA0F}.Release|x64.ActiveCfg = Release|x64

-		{F92D4129-C094-458D-8DFE-B1454A62DA0F}.Release|x64.Build.0 = Release|x64

-		{4C617764-FD55-4915-BACA-29D88A6B7C55}.Debug|x64.ActiveCfg = Debug|x64

-		{4C617764-FD55-4915-BACA-29D88A6B7C55}.Debug|x64.Build.0 = Debug|x64

-		{4C617764-FD55-4915-BACA-29D88A6B7C55}.Release|x64.ActiveCfg = Release|x64

-		{4C617764-FD55-4915-BACA-29D88A6B7C55}.Release|x64.Build.0 = Release|x64

-		{E1CB058B-DFAC-48CB-818E-4790D2C1701F}.Debug|x64.ActiveCfg = Debug|x64

-		{E1CB058B-DFAC-48CB-818E-4790D2C1701F}.Debug|x64.Build.0 = Debug|x64

-		{E1CB058B-DFAC-48CB-818E-4790D2C1701F}.Release|x64.ActiveCfg = Release|x64

-		{E1CB058B-DFAC-48CB-818E-4790D2C1701F}.Release|x64.Build.0 = Release|x64

-		{8DF28709-0405-4EF9-A525-19D177032073}.Debug|x64.ActiveCfg = Debug|x64

-		{8DF28709-0405-4EF9-A525-19D177032073}.Debug|x64.Build.0 = Debug|x64

-		{8DF28709-0405-4EF9-A525-19D177032073}.Release|x64.ActiveCfg = Release|x64

-		{8DF28709-0405-4EF9-A525-19D177032073}.Release|x64.Build.0 = Release|x64

-		{C61EDCD2-36AB-4F46-8886-40E6BDE05FAC}.Debug|x64.ActiveCfg = Debug|x64

-		{C61EDCD2-36AB-4F46-8886-40E6BDE05FAC}.Debug|x64.Build.0 = Debug|x64

-		{C61EDCD2-36AB-4F46-8886-40E6BDE05FAC}.Release|x64.ActiveCfg = Release|x64

-		{C61EDCD2-36AB-4F46-8886-40E6BDE05FAC}.Release|x64.Build.0 = Release|x64

-		{421744DE-5FB7-4694-98A7-00E4248A8B8C}.Debug|x64.ActiveCfg = Debug|x64

-		{421744DE-5FB7-4694-98A7-00E4248A8B8C}.Debug|x64.Build.0 = Debug|x64

-		{421744DE-5FB7-4694-98A7-00E4248A8B8C}.Release|x64.ActiveCfg = Release|x64

-		{421744DE-5FB7-4694-98A7-00E4248A8B8C}.Release|x64.Build.0 = Release|x64

-		{6AB95745-BE93-4BF0-B3D3-C99EAB716F6B}.Debug|x64.ActiveCfg = Debug|x64

-		{6AB95745-BE93-4BF0-B3D3-C99EAB716F6B}.Debug|x64.Build.0 = Debug|x64

-		{6AB95745-BE93-4BF0-B3D3-C99EAB716F6B}.Release|x64.ActiveCfg = Release|x64

-		{6AB95745-BE93-4BF0-B3D3-C99EAB716F6B}.Release|x64.Build.0 = Release|x64

-		{558927C3-045B-405D-A978-9E89D50BB51A}.Debug|x64.ActiveCfg = Debug|x64

-		{558927C3-045B-405D-A978-9E89D50BB51A}.Debug|x64.Build.0 = Debug|x64

-		{558927C3-045B-405D-A978-9E89D50BB51A}.Release|x64.ActiveCfg = Release|x64

-		{558927C3-045B-405D-A978-9E89D50BB51A}.Release|x64.Build.0 = Release|x64

-		{E68A8740-AEA1-423E-B32B-E873F787CF60}.Debug|x64.ActiveCfg = Debug|x64

-		{E68A8740-AEA1-423E-B32B-E873F787CF60}.Debug|x64.Build.0 = Debug|x64

-		{E68A8740-AEA1-423E-B32B-E873F787CF60}.Release|x64.ActiveCfg = Release|x64

-		{E68A8740-AEA1-423E-B32B-E873F787CF60}.Release|x64.Build.0 = Release|x64

-		{2C11BA8F-9F2D-4A94-B9E1-6F7CC2F99A96}.Debug|x64.ActiveCfg = Debug|x64

-		{2C11BA8F-9F2D-4A94-B9E1-6F7CC2F99A96}.Debug|x64.Build.0 = Debug|x64

-		{2C11BA8F-9F2D-4A94-B9E1-6F7CC2F99A96}.Release|x64.ActiveCfg = Release|x64

-		{2C11BA8F-9F2D-4A94-B9E1-6F7CC2F99A96}.Release|x64.Build.0 = Release|x64

-		{74A9ED6D-EE76-4DFF-A921-F6D761C2CB7A}.Debug|x64.ActiveCfg = Debug|x64

-		{74A9ED6D-EE76-4DFF-A921-F6D761C2CB7A}.Debug|x64.Build.0 = Debug|x64

-		{74A9ED6D-EE76-4DFF-A921-F6D761C2CB7A}.Release|x64.ActiveCfg = Release|x64

-		{74A9ED6D-EE76-4DFF-A921-F6D761C2CB7A}.Release|x64.Build.0 = Release|x64

-		{4AFF480F-006F-4229-8565-DB8F0E5F0C1D}.Debug|x64.ActiveCfg = Debug|x64

-		{4AFF480F-006F-4229-8565-DB8F0E5F0C1D}.Debug|x64.Build.0 = Debug|x64

-		{4AFF480F-006F-4229-8565-DB8F0E5F0C1D}.Release|x64.ActiveCfg = Release|x64

-		{4AFF480F-006F-4229-8565-DB8F0E5F0C1D}.Release|x64.Build.0 = Release|x64

-		{A23F679F-233A-41A1-9964-61A0576E5D93}.Debug|x64.ActiveCfg = Debug|x64

-		{A23F679F-233A-41A1-9964-61A0576E5D93}.Debug|x64.Build.0 = Debug|x64

-		{A23F679F-233A-41A1-9964-61A0576E5D93}.Release|x64.ActiveCfg = Release|x64

-		{A23F679F-233A-41A1-9964-61A0576E5D93}.Release|x64.Build.0 = Release|x64

-		{C3F0F0F8-0001-44C3-998F-89992361FA43}.Debug|x64.ActiveCfg = Debug|x64

-		{C3F0F0F8-0001-44C3-998F-89992361FA43}.Debug|x64.Build.0 = Debug|x64

-		{C3F0F0F8-0001-44C3-998F-89992361FA43}.Release|x64.ActiveCfg = Release|x64

-		{C3F0F0F8-0001-44C3-998F-89992361FA43}.Release|x64.Build.0 = Release|x64

-		{EB9E67A8-0D79-4355-8699-724FF8F40D39}.Debug|x64.ActiveCfg = Debug|x64

-		{EB9E67A8-0D79-4355-8699-724FF8F40D39}.Debug|x64.Build.0 = Debug|x64

-		{EB9E67A8-0D79-4355-8699-724FF8F40D39}.Release|x64.ActiveCfg = Release|x64

-		{EB9E67A8-0D79-4355-8699-724FF8F40D39}.Release|x64.Build.0 = Release|x64

-		{D5E2987D-234B-4EAB-85FA-BB377FE63C42}.Debug|x64.ActiveCfg = Debug|x64

-		{D5E2987D-234B-4EAB-85FA-BB377FE63C42}.Debug|x64.Build.0 = Debug|x64

-		{D5E2987D-234B-4EAB-85FA-BB377FE63C42}.Release|x64.ActiveCfg = Release|x64

-		{D5E2987D-234B-4EAB-85FA-BB377FE63C42}.Release|x64.Build.0 = Release|x64

-		{80036B79-DAF4-4EDD-854E-1ADCBEBEB803}.Debug|x64.ActiveCfg = Debug|x64

-		{80036B79-DAF4-4EDD-854E-1ADCBEBEB803}.Debug|x64.Build.0 = Debug|x64

-		{80036B79-DAF4-4EDD-854E-1ADCBEBEB803}.Release|x64.ActiveCfg = Release|x64

-		{80036B79-DAF4-4EDD-854E-1ADCBEBEB803}.Release|x64.Build.0 = Release|x64

-		{880CF3D8-B8A8-4350-A067-50A589563848}.Debug|x64.ActiveCfg = Debug|x64

-		{880CF3D8-B8A8-4350-A067-50A589563848}.Debug|x64.Build.0 = Debug|x64

-		{880CF3D8-B8A8-4350-A067-50A589563848}.Release|x64.ActiveCfg = Release|x64

-		{880CF3D8-B8A8-4350-A067-50A589563848}.Release|x64.Build.0 = Release|x64

-		{CF4985C6-A06B-4F20-B5C3-489889170DB7}.Debug|x64.ActiveCfg = Debug|x64

-		{CF4985C6-A06B-4F20-B5C3-489889170DB7}.Debug|x64.Build.0 = Debug|x64

-		{CF4985C6-A06B-4F20-B5C3-489889170DB7}.Release|x64.ActiveCfg = Release|x64

-		{CF4985C6-A06B-4F20-B5C3-489889170DB7}.Release|x64.Build.0 = Release|x64

-		{F98C05F8-584B-4BA1-ABC1-74C04B03932D}.Debug|x64.ActiveCfg = Debug|x64

-		{F98C05F8-584B-4BA1-ABC1-74C04B03932D}.Debug|x64.Build.0 = Debug|x64

-		{F98C05F8-584B-4BA1-ABC1-74C04B03932D}.Release|x64.ActiveCfg = Release|x64

-		{F98C05F8-584B-4BA1-ABC1-74C04B03932D}.Release|x64.Build.0 = Release|x64

-		{704D00D3-9B85-46E5-BA68-7DE9CC484AA8}.Debug|x64.ActiveCfg = Debug|x64

-		{704D00D3-9B85-46E5-BA68-7DE9CC484AA8}.Debug|x64.Build.0 = Debug|x64

-		{704D00D3-9B85-46E5-BA68-7DE9CC484AA8}.Release|x64.ActiveCfg = Release|x64

-		{704D00D3-9B85-46E5-BA68-7DE9CC484AA8}.Release|x64.Build.0 = Release|x64

-		{8E4F8CA1-26FF-4877-8446-0312F1CBDB85}.Debug|x64.ActiveCfg = Debug|x64

-		{8E4F8CA1-26FF-4877-8446-0312F1CBDB85}.Debug|x64.Build.0 = Debug|x64

-		{8E4F8CA1-26FF-4877-8446-0312F1CBDB85}.Release|x64.ActiveCfg = Release|x64

-		{8E4F8CA1-26FF-4877-8446-0312F1CBDB85}.Release|x64.Build.0 = Release|x64

-		{D9F9E9BA-DCFF-44CB-81E8-91E5FF5BADBA}.Debug|x64.ActiveCfg = Debug|x64

-		{D9F9E9BA-DCFF-44CB-81E8-91E5FF5BADBA}.Debug|x64.Build.0 = Debug|x64

-		{D9F9E9BA-DCFF-44CB-81E8-91E5FF5BADBA}.Release|x64.ActiveCfg = Release|x64

-		{D9F9E9BA-DCFF-44CB-81E8-91E5FF5BADBA}.Release|x64.Build.0 = Release|x64

-		{C22416C6-AF4C-47C6-BBE1-EF23D981AA44}.Debug|x64.ActiveCfg = Debug|x64

-		{C22416C6-AF4C-47C6-BBE1-EF23D981AA44}.Debug|x64.Build.0 = Debug|x64

-		{C22416C6-AF4C-47C6-BBE1-EF23D981AA44}.Release|x64.ActiveCfg = Release|x64

-		{C22416C6-AF4C-47C6-BBE1-EF23D981AA44}.Release|x64.Build.0 = Release|x64

-		{C80B4A96-BAAD-4526-921C-FB5DADBC135E}.Debug|x64.ActiveCfg = Debug|x64

-		{C80B4A96-BAAD-4526-921C-FB5DADBC135E}.Debug|x64.Build.0 = Debug|x64

-		{C80B4A96-BAAD-4526-921C-FB5DADBC135E}.Release|x64.ActiveCfg = Release|x64

-		{C80B4A96-BAAD-4526-921C-FB5DADBC135E}.Release|x64.Build.0 = Release|x64

-		{F7D5EAB5-65F8-45B5-9318-60EC311E08C6}.Debug|x64.ActiveCfg = Debug|x64

-		{F7D5EAB5-65F8-45B5-9318-60EC311E08C6}.Debug|x64.Build.0 = Debug|x64

-		{F7D5EAB5-65F8-45B5-9318-60EC311E08C6}.Release|x64.ActiveCfg = Release|x64

-		{F7D5EAB5-65F8-45B5-9318-60EC311E08C6}.Release|x64.Build.0 = Release|x64

-		{81575917-C673-4E6F-9CF1-0DD35FC5E717}.Debug|x64.ActiveCfg = Debug|x64

-		{81575917-C673-4E6F-9CF1-0DD35FC5E717}.Debug|x64.Build.0 = Debug|x64

-		{81575917-C673-4E6F-9CF1-0DD35FC5E717}.Release|x64.ActiveCfg = Release|x64

-		{81575917-C673-4E6F-9CF1-0DD35FC5E717}.Release|x64.Build.0 = Release|x64

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-	GlobalSection(ExtensibilityGlobals) = postSolution

-		SolutionGuid = {7BAAE3F9-A5D6-4949-9357-849CAA006F96}

-	EndGlobalSection

-EndGlobal

diff --git a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.DotNet.csproj b/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.DotNet.csproj
deleted file mode 100644
index 8c95b88..0000000
--- a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.DotNet.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Driver</AssemblyName>
-    <Description>Driver for REEF.NET</Description>
-    <PackageTags>REEF Driver</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj b/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
index a5b79f2..9bf9406 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
+++ b/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,173 +17,22 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{A6BAA2A7-F52F-4329-884E-1BCF711D6805}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Driver</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Driver</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+    <Description>Driver for REEF.NET</Description>
+    <PackageTags>REEF Driver</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Runtime.Serialization" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Bridge\Avro\DefinedRuntimes.cs" />
-    <Compile Include="Bridge\Avro\DefinedRuntimesSerializer.cs" />
-    <Compile Include="Bridge\BridgeConfigurationProvider.cs" />
-    <Compile Include="Bridge\BridgeHandlerManager.cs" />
-    <Compile Include="Bridge\BridgeLogger.cs" />
-    <Compile Include="Bridge\Clr2java\IActiveContextClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IAllocatedEvaluatorClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IClosedContextClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IClr2JavaTaskMessage.cs" />
-    <Compile Include="Bridge\Clr2java\ICompletedEvaluatorClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\ICompletedTaskClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IContextMessageClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IDriverRestartCompletedClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IDriverRestartedClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IEvaluatorRequestorClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IFailedContextClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IFailedEvaluatorClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IFailedTaskClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IHttpServerBridgeClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\IRunningTaskClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\ISuspendedTaskClr2Java.cs" />
-    <Compile Include="Bridge\Clr2java\ITaskMessageClr2Java.cs" />
-    <Compile Include="Bridge\ClrClientHelper.cs" />
-    <Compile Include="Bridge\ClrHandlerHelper.cs" />
-    <Compile Include="Bridge\ClrSystemHandler.cs" />
-    <Compile Include="Bridge\ClrSystemHandlerWrapper.cs" />
-    <Compile Include="Bridge\CommandLineArguments.cs" />
-    <Compile Include="Bridge\CustomTraceLevel.cs" />
-    <Compile Include="Bridge\CustomTraceListeners.cs" />
-    <Compile Include="Bridge\DriverBridge.cs" />
-    <Compile Include="Bridge\DriverBridgeConfigurationOptions.cs" />
-    <Compile Include="Bridge\EvaluatorLogLevelProvider.cs" />
-    <Compile Include="Bridge\Events\ActiveContext.cs" />
-    <Compile Include="Bridge\Events\AllocatedEvaluator.cs" />
-    <Compile Include="Bridge\Events\ClosedContext.cs" />
-    <Compile Include="Bridge\Events\CompletedEvaluator.cs" />
-    <Compile Include="Bridge\Events\CompletedTask.cs" />
-    <Compile Include="Bridge\Events\ContextMessage.cs" />
-    <Compile Include="Bridge\Events\DriverRestartCompleted.cs" />
-    <Compile Include="Bridge\Events\DriverRestarted.cs" />
-    <Compile Include="Bridge\Events\DriverStarted.cs" />
-    <Compile Include="Bridge\Events\EvaluatorRequestor.cs" />
-    <Compile Include="Bridge\Events\FailedContext.cs" />
-    <Compile Include="Bridge\Events\FailedEvaluator.cs" />
-    <Compile Include="Bridge\Events\FailedTask.cs" />
-    <Compile Include="Bridge\Events\RunningTask.cs" />
-    <Compile Include="Bridge\Events\SuspendedTask.cs" />
-    <Compile Include="Bridge\Events\TaskMessage.cs" />
-    <Compile Include="Bridge\HttpMessage.cs" />
-    <Compile Include="Bridge\HttpServerHandler.cs" />
-    <Compile Include="Bridge\HttpServerPort.cs" />
-    <Compile Include="Bridge\IHttpHandler.cs" />
-    <Compile Include="Bridge\IHttpMessage.cs" />
-    <Compile Include="Bridge\ILogger.cs" />
-    <Compile Include="Bridge\ReefHttpRequest.cs" />
-    <Compile Include="Bridge\ReefHttpResponse.cs" />
-    <Compile Include="Constants.cs" />
-    <Compile Include="Context\IActiveContext.cs" />
-    <Compile Include="Context\IClosedContext.cs" />
-    <Compile Include="Context\IContext.cs" />
-    <Compile Include="Context\IFailedContext.cs" />
-    <Compile Include="Defaults\DefaultProgressProvider.cs" />
-    <Compile Include="Defaults\DefaultClientCloseHandler.cs" />
-    <Compile Include="Defaults\DefaultClientCloseWithMessageHandler.cs" />
-    <Compile Include="Defaults\DefaultClientMessageHandler.cs" />
-    <Compile Include="Defaults\DefaultContextActiveHandler.cs" />
-    <Compile Include="Defaults\DefaultContextClosureHandler.cs" />
-    <Compile Include="Defaults\DefaultContextFailureHandler.cs" />
-    <Compile Include="Defaults\DefaultContextMessageHandler.cs" />
-    <Compile Include="Defaults\DefaultCustomTraceListener.cs" />
-    <Compile Include="Defaults\DefaultDriverRestartCompletedHandler.cs" />
-    <Compile Include="Defaults\DefaultDriverRestartContextActiveHandler.cs" />
-    <Compile Include="Defaults\DefaultDriverRestartedHandler.cs" />
-    <Compile Include="Defaults\DefaultDriverRestartHandler.cs" />
-    <Compile Include="Defaults\DefaultDriverRestartTaskRunningHandler.cs" />
-    <Compile Include="Defaults\DefaultEvaluatorAllocationHandler.cs" />
-    <Compile Include="Defaults\DefaultEvaluatorCompletionHandler.cs" />
-    <Compile Include="Defaults\DefaultEvaluatorFailureHandler.cs" />
-    <Compile Include="Defaults\DefaultHttpHandler.cs" />
-    <Compile Include="Defaults\DefaultTaskCompletionHandler.cs" />
-    <Compile Include="Defaults\DefaultTaskFailureHandler.cs" />
-    <Compile Include="Defaults\DefaultTaskMessageHandler.cs" />
-    <Compile Include="Defaults\DefaultTaskRunningHandler.cs" />
-    <Compile Include="Defaults\DefaultTaskSuspensionHandler.cs" />
-    <Compile Include="DriverConfigGenerator.cs" />
-    <Compile Include="DriverConfiguration.cs" />
-    <Compile Include="DriverConfigurationSettings.cs" />
-    <Compile Include="Evaluator\EvaluatorDescriptorImpl.cs" />
-    <Compile Include="Evaluator\EvaluatorException.cs" />
-    <Compile Include="Evaluator\EvaluatorRequest.cs" />
-    <Compile Include="Evaluator\EvaluatorRequestBuilder.cs" />
-    <Compile Include="Evaluator\IAllocatedEvaluator.cs" />
-    <Compile Include="Evaluator\ICompletedEvaluator.cs" />
-    <Compile Include="Evaluator\IEvaluatorDescriptor.cs" />
-    <Compile Include="Evaluator\IEvaluatorRequest.cs" />
-    <Compile Include="Evaluator\IEvaluatorRequestor.cs" />
-    <Compile Include="Evaluator\IFailedEvaluator.cs" />
-    <Compile Include="IJobCancelled.cs" />
-    <Compile Include="MetricsServiceConfigurationModule.cs" />
-    <Compile Include="Task\JavaTaskException.cs" />
-    <Compile Include="IDriver.cs" />
-    <Compile Include="IDriverRestarted.cs" />
-    <Compile Include="IDriverStarted.cs" />
-    <Compile Include="IDriverRestartCompleted.cs" />
-    <Compile Include="IProgressProvider.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Task\ICompletedTask.cs" />
-    <Compile Include="Task\IFailedTask.cs" />
-    <Compile Include="Task\IRunningTask.cs" />
-    <Compile Include="Task\ISuspendedTask.cs" />
-    <Compile Include="Task\ITaskMessage.cs" />
-    <Compile Include="Task\TaskExceptionMissingException.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Bridge\Avro\README.md" />
-    <None Include="Org.Apache.REEF.Driver.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>ReefCommon</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.targets"/>
 </Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.nuspec b/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.nuspec
deleted file mode 100644
index f3cad2c..0000000
--- a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.nuspec
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Driver</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Driver</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Driver for REEF.NET</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <dependencies>
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-    </dependencies>
-  </metadata>
-
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index e7b4768..0000000
--- a/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-// Allow the bridge access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Bridge")]
-
diff --git a/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
index d21e703..e7b4768 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,23 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Driver")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Driver")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("81ea2648-b341-4852-93b0-806da615c6b8")]
 
 // Allow the bridge access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Bridge, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
\ No newline at end of file
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Bridge")]
+
diff --git a/lang/cs/Org.Apache.REEF.Driver/packages.config b/lang/cs/Org.Apache.REEF.Driver/packages.config
deleted file mode 100644
index 9d07038..0000000
--- a/lang/cs/Org.Apache.REEF.Driver/packages.config
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.DotNet.csproj
deleted file mode 100644
index 8462277..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.DotNet.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Evaluator.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.csproj b/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.csproj
index 5c11de6..43ddc53 100644
--- a/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Evaluator.Tests/Org.Apache.REEF.Evaluator.Tests.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -15,99 +15,23 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <ProjectGuid>{0B596FAC-53B0-435A-ACE5-6725309E414A}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Evaluator.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Evaluator.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-    <IsCodedUITest>False</IsCodedUITest>
-    <TestProjectType>UnitTest</TestProjectType>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="NSubstitute, Version=$(NSubstituteVersion), Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\NSubstitute.$(NSubstituteVersion)\lib\net45\NSubstitute.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
+    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="ContextRuntimeTests.cs" />
-    <Compile Include="EvaluatorConfigurationsTests.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="EvaluatorServiceTests.cs" />
-    <Compile Include="TaskRuntimeTests.cs" />
-    <Compile Include="TestUtils\ITestService.cs" />
-    <Compile Include="TestUtils\SimpleTestTask.cs" />
-    <Compile Include="TestUtils\TestService.cs" />
-    <Compile Include="TestUtils\TestTask.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.csproj">
-      <Project>{0ff8cee9-b0b6-4a14-9a52-44441be048fe}</Project>
-      <Name>Org.Apache.REEF.Examples.HelloREEF</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(NuGetError)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-</Project>
+  <Import Project="..\build.Test.targets" />
+</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Evaluator.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Evaluator.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index cdef02f..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Evaluator.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Evaluator.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("974cc59d-5bbd-4ba6-b31d-ebe117cd4c2f")]
diff --git a/lang/cs/Org.Apache.REEF.Evaluator.Tests/packages.config b/lang/cs/Org.Apache.REEF.Evaluator.Tests/packages.config
deleted file mode 100644
index 091af92..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator.Tests/packages.config
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="NSubstitute" version="1.8.2.0" targetFramework="net45" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.DotNet.csproj b/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.DotNet.csproj
deleted file mode 100644
index 965ae8e..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.DotNet.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Evaluator</AssemblyName>
-    <Description>Evaluator for REEF.NET</Description>
-    <PackageTags>REEF Evaluator</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj b/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
index 8d2a818..187d77f 100644
--- a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
+++ b/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,86 +17,22 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{1B983182-9C30-464C-948D-F87EB93A8240}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Evaluator</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Evaluator</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+    <Description>Evaluator for REEF.NET</Description>
+    <PackageTags>REEF Evaluator</PackageTags>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
-    <PlatformTarget>x64</PlatformTarget>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <Prefer32Bit>false</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
-    <Prefer32Bit>false</Prefer32Bit>
-    <PlatformTarget>x64</PlatformTarget>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Core" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Evaluator.cs" />
-    <Compile Include="Exceptions\ClockInstantiationException.cs" />
-    <Compile Include="Exceptions\EvaluatorConfigurationFileNotFoundException.cs" />
-    <Compile Include="Exceptions\EvaluatorConfigurationParseException.cs" />
-    <Compile Include="Exceptions\EvaluatorInjectorInstantiationException.cs" />
-    <Compile Include="Exceptions\UnhandledException.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Content Include="NugetExeFix.txt">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="Org.Apache.REEF.Evaluator.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets" />
+</Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.nuspec b/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.nuspec
deleted file mode 100644
index 2e02aac..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.nuspec
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Evaluator</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Evaluator</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Evaluator for REEF.NET</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <dependencies>
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Driver" version="$version$" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="protobuf-net" version="2.1.0" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.exe" target="lib\net45" />
-    <!-- TODO[REEF-1620]: Remove the below -->
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.exe" target="tools" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Evaluator\NugetExeFix.txt" target="lib\net45" />
-  </files>
-</package>
-
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index c21e42d..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tang.Tests")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.cs
index 848b526..c21e42d 100644
--- a/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Evaluator/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,24 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("Org.Apache.REEF.Evaluator")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Evaluator")]
-
-[assembly: Guid("a64dc535-9b1e-41a4-8303-117f8b28c8c0")]
 
 // Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tang.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
\ No newline at end of file
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Tang.Tests")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/packages.config b/lang/cs/Org.Apache.REEF.Evaluator/packages.config
deleted file mode 100644
index f64c5a2..0000000
--- a/lang/cs/Org.Apache.REEF.Evaluator/packages.config
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.DotNet.csproj b/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.DotNet.csproj
deleted file mode 100644
index cfeab13..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.DotNet.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Examples.AllHandlers</AssemblyName>
-    <Description>All handlers example for REEF.NET</Description>
-    <PackageTags>REEF Examples</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.csproj b/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.csproj
index 9e9d5e0..53b6993 100644
--- a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.csproj
+++ b/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Org.Apache.REEF.Examples.AllHandlers.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,114 +17,22 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{159F7D70-8ACC-4D97-9F6D-2FC4CA0D8682}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Examples.AllHandlers</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Examples.AllHandlers</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>All handlers example for REEF.NET</Description>
+    <PackageTags>REEF Examples</PackageTags>
   </PropertyGroup>
-  <PropertyGroup>
-    <StartupObject />
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>false</BuildPackage>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="AllHandlers.cs" />
-    <Compile Include="AnotherHelloAllocatedEvaluatorHandler.cs" />
-    <Compile Include="HelloActiveContextHandler.cs" />
-    <Compile Include="HelloAllocatedEvaluatorHandler.cs" />
-    <Compile Include="HelloCompletedEvaluatorHandler.cs" />
-    <Compile Include="HelloDriverRestartActiveContextHandler.cs" />
-    <Compile Include="HelloDriverRestartRunningTaskHandler.cs" />
-    <Compile Include="HelloDriverStartHandler.cs" />
-    <Compile Include="HelloFailedEvaluatorHandler.cs" />
-    <Compile Include="HelloFailedTaskHandler.cs" />
-    <Compile Include="HelloHttpHandler.cs" />
-    <Compile Include="HelloRestartHandler.cs" />
-    <Compile Include="HelloRunningTaskHandler.cs" />
-    <Compile Include="HelloTaskMessageHandler.cs" />
-    <Compile Include="HelloTraceListener.cs" />
-    <Compile Include="HelloTaskCompletedHandler.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj">
-      <Project>{4e69d40a-26d6-4d4a-b96d-729946c07fe1}</Project>
-      <Name>Org.Apache.REEF.Bridge</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-    <None Include="Readme.md" />
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
+  <Import Project="..\build.targets"/>
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Properties/AssemblyInfo.cs
deleted file mode 100644
index 3b3a21c..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Examples.AllHandlers")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Examples.AllHandlers")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("2c286656-9b3f-42f9-a29f-3307ebfc8022")]
diff --git a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/packages.config b/lang/cs/Org.Apache.REEF.Examples.AllHandlers/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.AllHandlers/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.DotNet.csproj b/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.DotNet.csproj
deleted file mode 100644
index 50cbc49..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.DotNet.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Examples.DriverRestart</AssemblyName>
-    <Description>Driver restart example for REEF.NET</Description>
-    <PackageTags>REEF Examples</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.csproj b/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.csproj
index e73806c..23a6250 100644
--- a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.csproj
+++ b/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Org.Apache.REEF.Examples.DriverRestart.csproj
@@ -1,90 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+<Project>
+  <!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
   <PropertyGroup>
-    <ProjectGuid>{EAB1753E-491E-449E-BCF3-50127DE63EE1}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Examples.DriverRestart</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Examples.DriverRestart</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Driver restart example for REEF.NET</Description>
+    <PackageTags>REEF Examples</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>false</BuildPackage>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="DriverRestart.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="packages.config" />
-    <None Include="Readme.md" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj">
-      <Project>{4e69d40a-26d6-4d4a-b96d-729946c07fe1}</Project>
-      <Name>Org.Apache.REEF.Bridge</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
+  <Import Project="..\build.targets"/>
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Properties/AssemblyInfo.cs
deleted file mode 100644
index a222bcd..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Examples.DriverRestart")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Examples.DriverRestart")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("eab1753e-491e-449e-bcf3-50127de63ee1")]
diff --git a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/packages.config b/lang/cs/Org.Apache.REEF.Examples.DriverRestart/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.DriverRestart/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.DotNet.csproj b/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.DotNet.csproj
deleted file mode 100644
index 47ee42c..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.DotNet.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Examples.HelloREEF</AssemblyName>
-    <Description>Hello World Example for REEF.NET</Description>
-    <PackageTags>REEF Examples</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.csproj b/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.csproj
index 989cb65..802a174 100644
--- a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.csproj
+++ b/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Org.Apache.REEF.Examples.HelloREEF.csproj
@@ -1,95 +1,37 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+<Project>
+  <!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
   <PropertyGroup>
-    <ProjectGuid>{0FF8CEE9-B0B6-4A14-9A52-44441BE048FE}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Examples.HelloREEF</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Examples.HelloREEF</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Hello World Example for REEF.NET</Description>
+    <PackageTags>REEF Examples</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>false</BuildPackage>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="HelloDriver.cs" />
-    <Compile Include="HelloDriverYarn.cs" />
-    <Compile Include="HelloREEF.cs" />
-    <Compile Include="HelloREEFYarn.cs" />
-    <Compile Include="HelloTask.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Run.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="packages.config" />
-    <None Include="Readme.md" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{DEC0F0A8-DBEF-4EBF-B69C-E2369C15ABF1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets" />
+</Project>
diff --git a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Properties/AssemblyInfo.cs
deleted file mode 100644
index 4889c2b..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Examples.HelloREEF")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Examples.HelloREEF")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("1aaf7ad7-445c-49f3-b519-f77cd8cd58d7")]
diff --git a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/packages.config b/lang/cs/Org.Apache.REEF.Examples.HelloREEF/packages.config
deleted file mode 100644
index 17b9f77..0000000
--- a/lang/cs/Org.Apache.REEF.Examples.HelloREEF/packages.config
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.DotNet.csproj b/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.DotNet.csproj
deleted file mode 100644
index 94fd89a..0000000
--- a/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.DotNet.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Examples</AssemblyName>
-    <Description>REEF Examples</Description>
-    <PackageTags>REEF Examples</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.csproj b/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.csproj
index a3ee295..693bbf4 100644
--- a/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.csproj
+++ b/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,97 +17,24 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{75503F90-7B82-4762-9997-94B5C68F15DB}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Examples</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Examples</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>REEF Examples</Description>
+    <PackageTags>REEF Examples</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Runtime.Serialization" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="DriverRestart\HelloRestartDriver.cs" />
-    <Compile Include="DriverRestart\HelloRestartTask.cs" />
-    <Compile Include="MachineLearning\KMeans\Centroids.cs" />
-    <Compile Include="MachineLearning\KMeans\codecs\AvroUtils.cs" />
-    <Compile Include="MachineLearning\KMeans\codecs\CentroidsCodec.cs" />
-    <Compile Include="MachineLearning\KMeans\codecs\DataVectorCodec.cs" />
-    <Compile Include="MachineLearning\KMeans\codecs\ProcessedResultsCodec.cs" />
-    <Compile Include="MachineLearning\KMeans\Constants.cs" />
-    <Compile Include="MachineLearning\KMeans\Contracts\CentroidsContract.cs" />
-    <Compile Include="MachineLearning\KMeans\Contracts\DataVectorContract.cs" />
-    <Compile Include="MachineLearning\KMeans\Contracts\PartialMeanContract.cs" />
-    <Compile Include="MachineLearning\KMeans\Contracts\ProcessedResultsContract.cs" />
-    <Compile Include="MachineLearning\KMeans\DataPartitionCache.cs" />
-    <Compile Include="MachineLearning\KMeans\DataVector.cs" />
-    <Compile Include="MachineLearning\KMeans\KMeansConfiguratioinOptions.cs" />
-    <Compile Include="MachineLearning\KMeans\KMeansDriverHandlers.cs" />
-    <Compile Include="MachineLearning\KMeans\KMeansMasterTask.cs" />
-    <Compile Include="MachineLearning\KMeans\KMeansSlaveTask.cs" />
-    <Compile Include="MachineLearning\KMeans\LegacyKMeansTask.cs" />
-    <Compile Include="MachineLearning\KMeans\PartialMean.cs" />
-    <Compile Include="MachineLearning\KMeans\ProcessedResults.cs" />
-    <Compile Include="Tasks\FailedTask\FailedTask.cs" />
-    <Compile Include="Tasks\HelloTask\HelloService.cs" />
-    <Compile Include="Tasks\HelloTask\HelloTask.cs" />
-    <Compile Include="Tasks\HelloTask\HelloTaskMessage.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Tasks\ShellTask\ShellTask.cs" />
-    <Compile Include="Tasks\StreamingTasks\StreamTask1.cs" />
-    <Compile Include="Tasks\StreamingTasks\StreamTask2.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets"/>
+</Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.nuspec b/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.nuspec
deleted file mode 100644
index a2f741a..0000000
--- a/lang/cs/Org.Apache.REEF.Examples/Org.Apache.REEF.Examples.nuspec
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Examples</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Examples</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>REEF Examples</description>
-    <copyright>The Apache Software Foundation</copyright>
-     <dependencies>
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Driver" version="$version$" />
-      <dependency id="Org.Apache.REEF.Network" version="$version$" />
-    </dependencies>
-  </metadata>
-  <files>
-      <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.dll" target="lib\net45" />
-      <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Examples/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Examples/Properties/AssemblyInfo.cs
deleted file mode 100644
index 373e5a9..0000000
--- a/lang/cs/Org.Apache.REEF.Examples/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Examples")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Examples")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b9e219f1-a02c-468c-ab26-3ef5c91310f7")]
diff --git a/lang/cs/Org.Apache.REEF.Examples/packages.config b/lang/cs/Org.Apache.REEF.Examples/packages.config
deleted file mode 100644
index f627d0b..0000000
--- a/lang/cs/Org.Apache.REEF.Examples/packages.config
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.DotNet.csproj b/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.DotNet.csproj
deleted file mode 100644
index ba30acb..0000000
--- a/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.DotNet.csproj
+++ /dev/null
@@ -1,62 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.FatNuGet</AssemblyName>
-    <Description>Provide single package which contains all necessary REEF/WAKE/TANG projects.</Description>
-    <PackageTags>Single package which contains all Reef/Wake/Tang projects</PackageTags>
-    <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <Content Include="$(BinDir)\$(Configuration)\Org.Apache.REEF.Evaluator\net461\Org.Apache.REEF.Evaluator.exe">
-      <Pack>true</Pack>
-      <PackagePath>lib\netstandard2.0</PackagePath>
-    </Content>
-
-    <Content Include="$(BinDir)\$(Configuration)\Org.Apache.REEF.IMRU.Examples\net461\Org.Apache.REEF.IMRU.Examples.exe">
-      <Pack>true</Pack>
-      <PackagePath>lib\netstandard2.0</PackagePath>
-    </Content>
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" PrivateAssets="All"/>
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" PrivateAssets="All"/>
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-  <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveProjectReferences">
-    <ItemGroup>
-      <BuildOutputInPackage Include="@(_ResolvedProjectReferencePaths)" />
-    </ItemGroup>
-  </Target>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.csproj b/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.csproj
index 8827946..3f36617 100644
--- a/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.csproj
+++ b/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,88 +17,46 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{5E764C67-DECF-4B43-B719-2B3EC10A767E}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.FatNuGet</RootNamespace>
     <AssemblyName>Org.Apache.REEF.FatNuGet</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
+    <Description>Provide single package which contains all necessary REEF/WAKE/TANG projects.</Description>
+    <PackageTags>Single package which contains all Reef/Wake/Tang projects</PackageTags>
+    <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
   </ItemGroup>
+
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Content Include="$(BinDir)\$(Configuration)\Org.Apache.REEF.Evaluator\net461\Org.Apache.REEF.Evaluator.exe">
+      <Pack>true</Pack>
+      <PackagePath>lib\netstandard2.0</PackagePath>
+    </Content>
+
+    <Content Include="$(BinDir)\$(Configuration)\Org.Apache.REEF.IMRU.Examples\net461\Org.Apache.REEF.IMRU.Examples.exe">
+      <Pack>true</Pack>
+      <PackagePath>lib\netstandard2.0</PackagePath>
+    </Content>
   </ItemGroup>
+
   <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj">
-      <Project>{cc797c57-b465-4d11-98ac-edaaef5899a6}</Project>
-      <Name>Org.Apache.REEF.IMRU</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Org.Apache.REEF.Bridge.CLR\Org.Apache.REEF.Bridge.CLR.csproj">
-      <Project>{e19ff4f8-ab45-4631-8017-e18d94d882dd}</Project>
-      <Name>Org.Apache.REEF.Bridge.CLR</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.csproj">
-      <Project>{6dc3b04e-2b99-4fda-bd23-2c7864f4c477}</Project>
-      <Name>Org.Apache.REEF.IMRU.Examples</Name>
-    </ProjectReference>
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" PrivateAssets="All"/>
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" PrivateAssets="All"/>
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.REEF.FatNuGet.nuspec" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.targets" />
+  <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveProjectReferences">
+    <ItemGroup>
+      <BuildOutputInPackage Include="@(_ResolvedProjectReferencePaths)" />
+    </ItemGroup>
+  </Target>
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.nuspec b/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.nuspec
deleted file mode 100644
index 9e7c092..0000000
--- a/lang/cs/Org.Apache.REEF.FatNuGet/Org.Apache.REEF.FatNuGet.nuspec
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.FatNuGet</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.FatNuGet</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Provide single package which contains all necessary REEF/WAKE/TANG projects.</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>Single package which contains all Reef/Wake/Tang projects </tags>
-    <dependencies>
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="Newtonsoft.Json" version="10.0.3" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Rx-Core" version="2.2.5" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\NugetExeFix.txt" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Bridge.CLR.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Client.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Client.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Common.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Common.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Driver.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Driver.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Evaluator.exe" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Examples.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Examples.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.FatNuGet.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.FatNuGet.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.IMRU.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.IMRU.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.IMRU.Examples.exe" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.IO.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.IO.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Network.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Network.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Tang.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Tang.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Utilities.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Utilities.pdb" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Wake.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.FatNuGet\Org.Apache.REEF.Wake.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.FatNuGet/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.FatNuGet/Properties/AssemblyInfo.cs
deleted file mode 100644
index dc1c2fa..0000000
--- a/lang/cs/Org.Apache.REEF.FatNuGet/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.FatNuGet")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.FatNuGet")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("592c071f-0ab7-4d5f-9e24-1d0a956df3bd")]
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.DotNet.csproj b/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.DotNet.csproj
deleted file mode 100644
index b99319f..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.DotNet.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.IMRU.Examples</AssemblyName>
-    <Description>IMRU Examples for REEF.NET</Description>
-    <PackageTags>REEF Examples IMRU</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.csproj b/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.csproj
index 43d3b24..f081275 100644
--- a/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.csproj
+++ b/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,113 +17,22 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{6DC3B04E-2B99-4FDA-BD23-2C7864F4C477}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.IMRU.Examples</RootNamespace>
     <AssemblyName>Org.Apache.REEF.IMRU.Examples</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
+    <Description>IMRU Examples for REEF.NET</Description>
+    <PackageTags>REEF Examples IMRU</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>true</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="MapperCount\IdentityMapFunction.cs" />
-    <Compile Include="IntSumReduceFunction.cs" />
-    <Compile Include="MapperCount\MapperCount.cs" />
-    <Compile Include="PipelinedBroadcastReduce\PipelinedBroadcastAndReduceWithFaultTolerant.cs" />
-    <Compile Include="PipelinedBroadcastReduce\MapTaskState.cs" />
-    <Compile Include="PipelinedBroadcastReduce\UpdateTaskState.cs" />
-    <Compile Include="SingleIterUpdateFunction.cs" />
-    <Compile Include="NaturalSum\NaturalSum.cs" />
-    <Compile Include="NaturalSum\NaturalSumMapFunction.cs" />
-    <Compile Include="NaturalSum\NaturalSumPerMapperConfigGenerator.cs" />
-    <Compile Include="OnREEFIMRURunTimeConfiguration.cs" />
-    <Compile Include="PipelinedBroadcastReduce\BroadcastReceiverReduceSenderMapFunction.cs" />
-    <Compile Include="PipelinedBroadcastReduce\BroadcastReduceConfiguration.cs" />
-    <Compile Include="PipelinedBroadcastReduce\BroadcastSenderReduceReceiverUpdateFunction.cs" />
-    <Compile Include="PipelinedBroadcastReduce\IntArraySumReduceFunction.cs" />
-    <Compile Include="PipelinedBroadcastReduce\PipelinedBroadcastAndReduce.cs" />
-    <Compile Include="PipelinedBroadcastReduce\PipelineIntDataConverter.cs" />
-    <Compile Include="Run.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj">
-      <Project>{cc797c57-b465-4d11-98ac-edaaef5899a6}</Project>
-      <Name>Org.Apache.REEF.IMRU</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="Org.Apache.REEF.IMRU.Examples.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
+  <Import Project="..\build.targets"/>
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.nuspec b/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.nuspec
deleted file mode 100644
index df5abea..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Examples/Org.Apache.REEF.IMRU.Examples.nuspec
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.IMRU.Examples</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.IMRU.Examples</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Iterative Map Reduce Update for REEF Examples.</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>REEF IMRU EXAMPLES</tags>
-    <dependencies>
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Network" version="$version$" />
-      <dependency id="Org.Apache.REEF.Driver" version="$version$" />
-      <dependency id="Org.Apache.REEF.IMRU" version="$version$" />
-      <dependency id="Org.Apache.REEF.Examples" version="$version$" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="protobuf-net" version="2.1.0" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.exe" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 7f1338f..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.cs
index 8e5163d..7f1338f 100644
--- a/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.IMRU.Examples/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,23 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.IMRU.Examples")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.IMRU.Examples")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("1aaf7ad7-445c-49f3-b519-f77cd8cd58d7")]
-
-// Allow the tests project access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Examples/packages.config b/lang/cs/Org.Apache.REEF.IMRU.Examples/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Examples/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.DotNet.csproj
deleted file mode 100644
index f464933..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.DotNet.csproj
+++ /dev/null
@@ -1,39 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.IMRU.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.csproj b/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.csproj
index bf71ef6..73d6c25 100644
--- a/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.IMRU.Tests/Org.Apache.REEF.IMRU.Tests.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,103 +17,23 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{4B4AF206-7AF6-4BDE-AFA4-416FBD6DCCB6}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.IMRU.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.IMRU.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-    <RestorePackages>true</RestorePackages>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-    <Reference Include="NSubstitute, Version=$(NSubstituteVersion), Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\NSubstitute.$(NSubstituteVersion)\lib\net45\NSubstitute.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
+    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="ImruDriverCancelTests.cs" />
-    <Compile Include="IMRUJobDefinitionBuilderTests.cs" />
-    <Compile Include="JobLifecycleManagerTest.cs" />
-    <Compile Include="MapInputWithControlMessageTests.cs" />
-    <Compile Include="NaturalSumTest.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="MapperCountTest.cs" />
-    <Compile Include="TestActiveContextManager.cs" />
-    <Compile Include="TestEvaluatorManager.cs" />
-    <Compile Include="TestSystemStates.cs" />
-    <Compile Include="TestTaskManager.cs" />
-    <Compile Include="TestTaskStates.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj">
-      <Project>{cc797c57-b465-4d11-98ac-edaaef5899a6}</Project>
-      <Name>Org.Apache.REEF.IMRU</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.csproj">
-      <Project>{6dc3b04e-2b99-4fda-bd23-2c7864f4c477}</Project>
-      <Name>Org.Apache.REEF.IMRU.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(NuGetError)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
+  <Import Project="..\build.Test.targets" />
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.IMRU.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6a2c959..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("Org.Apache.REEF.IMRU.Tests")]
-[assembly: AssemblyDescription("Tests for Iterative Map Reduce Update (IMRU) API for REEF")]
-[assembly: AssemblyProduct("Org.Apache.REEF.IMRU.Tests")]
-
-[assembly: Guid("e3c78171-f90c-4737-b673-31d053c16313")]
diff --git a/lang/cs/Org.Apache.REEF.IMRU.Tests/packages.config b/lang/cs/Org.Apache.REEF.IMRU.Tests/packages.config
deleted file mode 100644
index 6cae99e..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU.Tests/packages.config
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="NSubstitute" version="1.8.2.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.DotNet.csproj b/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.DotNet.csproj
deleted file mode 100644
index 5dfd5c2..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.DotNet.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.IMRU</AssemblyName>
-    <Description>IMRU for REEF.NET</Description>
-    <PackageTags>REEF IMRU</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.csproj b/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.csproj
index 99d2665..7a278bc 100644
--- a/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.csproj
+++ b/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,168 +17,21 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{CC797C57-B465-4D11-98AC-EDAAEF5899A6}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.IMRU</RootNamespace>
     <AssemblyName>Org.Apache.REEF.IMRU</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>IMRU for REEF.NET</Description>
+    <PackageTags>REEF IMRU</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-  </PropertyGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="API\IIMRUClient.cs" />
-    <Compile Include="API\IIMRUResultHandler.cs" />
-    <Compile Include="API\IJobCancelledDetector.cs" />
-    <Compile Include="API\IMapFunction.cs" />
-    <Compile Include="API\IMRUCodecConfiguration.cs" />
-    <Compile Include="API\IMRUPipelineDataConverterConfiguration.cs" />
-    <Compile Include="API\IMRUJobDefinition.cs" />
-    <Compile Include="API\IMRUJobDefinitionBuilder.cs" />
-    <Compile Include="API\IMRUMapConfiguration.cs" />
-    <Compile Include="API\IMRUReduceFunctionConfiguration.cs" />
-    <Compile Include="API\IMRUPerMapperConfigGeneratorConfiguration.cs" />
-    <Compile Include="API\IMRUUpdateConfiguration.cs" />
-    <Compile Include="API\IUpdateFunction.cs" />
-    <Compile Include="API\IPerMapperConfigGenerator.cs" />
-    <Compile Include="OnREEF\Driver\JobCancellationDetectorAlwaysFalse.cs" />
-    <Compile Include="API\PerMapConfigGeneratorSet.cs" />
-    <Compile Include="API\UpdateResult.cs" />
-    <Compile Include="InProcess\IMRURunner.cs" />
-    <Compile Include="InProcess\InProcessIMRUClient.cs" />
-    <Compile Include="InProcess\InProcessIMRUConfiguration.cs" />
-    <Compile Include="InProcess\OutputCodecWrapper.cs" />
-    <Compile Include="InProcess\InputCodecWrapper.cs" />
-    <Compile Include="InProcess\MapFunctions.cs" />
-    <Compile Include="InProcess\Parameters\NumberOfMappers.cs" />
-    <Compile Include="OnREEF\Client\REEFIMRUClientConfiguration.cs" />
-    <Compile Include="OnREEF\Client\REEFIMRUClient.cs" />
-    <Compile Include="OnREEF\Driver\ConfigurationManager.cs" />
-    <Compile Include="OnREEF\Driver\ContextAndServiceConfiguration.cs" />
-    <Compile Include="OnREEF\Driver\ActiveContextManager.cs" />
-    <Compile Include="OnREEF\Driver\DataLoadingContext.cs" />
-    <Compile Include="OnREEF\Driver\EvaluatorManager.cs" />
-    <Compile Include="OnREEF\Driver\EvaluatorSpecification.cs" />
-    <Compile Include="OnREEF\Driver\IJobLifeCycleManager.cs" />
-    <Compile Include="OnREEF\Driver\JobCancelled.cs" />
-    <Compile Include="OnREEF\Driver\JobLifeCycleManager.cs" />
-    <Compile Include="OnREEF\Driver\IMRUSystemException.cs" />
-    <Compile Include="OnREEF\Driver\IMRUConstants.cs" />
-    <Compile Include="OnREEF\Driver\IMRUDriver.cs" />
-    <Compile Include="OnREEF\Driver\PartitionDescriptorContextIdBundle.cs" />
-    <Compile Include="OnREEF\Driver\ServiceAndContextConfigurationProvider.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\TaskStateMachine.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\StateTransition.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\SystemState.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\SystemStateEvent.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\SystemStateMachine.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\SystemStateTransitionException.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\TaskStateEvent.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\TaskState.cs" />
-    <Compile Include="OnREEF\Driver\StateMachine\TaskStateTransitionException.cs" />
-    <Compile Include="OnREEF\Driver\TaskInfo.cs" />
-    <Compile Include="OnREEF\Driver\TaskManager.cs" />
-    <Compile Include="OnREEF\Driver\TaskStateService.cs" />
-    <Compile Include="OnREEF\IMRUTasks\IMRUTaskAppException.cs" />
-    <Compile Include="OnREEF\IMRUTasks\IMRUTaskGroupCommunicationException.cs" />
-    <Compile Include="OnREEF\IMRUTasks\IMRUTaskSystemException.cs" />
-    <Compile Include="OnREEF\IMRUTasks\ITaskState.cs" />
-    <Compile Include="OnREEF\IMRUTasks\MapTaskHost.cs" />
-    <Compile Include="OnREEF\IMRUTasks\TaskCloseCoordinator.cs" />
-    <Compile Include="OnREEF\IMRUTasks\TaskHostBase.cs" />
-    <Compile Include="OnREEF\IMRUTasks\UpdateTaskHost.cs" />
-    <Compile Include="OnREEF\MapInputWithControlMessage\MapControlMessage.cs" />
-    <Compile Include="OnREEF\MapInputWithControlMessage\MapInputWithControlMessage.cs" />
-    <Compile Include="OnREEF\MapInputWithControlMessage\MapInputWithControlMessageCodec.cs" />
-    <Compile Include="OnREEF\MapInputWithControlMessage\MapInputwithControlMessagePipelineDataConverter.cs" />
-    <Compile Include="OnREEF\Parameters\InvokeGC .cs" />
-    <Compile Include="OnREEF\Parameters\AllowedFailedEvaluatorsFraction.cs" />
-    <Compile Include="OnREEF\Parameters\CoresForUpdateTask.cs" />
-    <Compile Include="OnREEF\Parameters\CoresPerMapper.cs" />
-    <Compile Include="OnREEF\Parameters\MaxRetryNumberInRecovery.cs" />
-    <Compile Include="OnREEF\Parameters\MemoryForUpdateTask.cs" />
-    <Compile Include="OnREEF\Parameters\MemoryPerMapper.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedMapTaskStateConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedResultHandlerConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedMapConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedMapInputCodecConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedMapInputPipelineDataConverterConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedMapOutputPipelineDataConverterConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedReduceConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedUpdateConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedUpdateFunctionCodecsConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SerializedUpdateTaskStateConfiguration.cs" />
-    <Compile Include="OnREEF\Parameters\SleepIntervalParameter.cs" />
-    <Compile Include="OnREEF\Parameters\MinTaskWaitingForCloseTimeout.cs" />
-    <Compile Include="OnREEF\Parameters\TimeoutMonitoringInterval.cs" />
-    <Compile Include="OnREEF\ResultHandler\DefaultResultHandler.cs" />
-    <Compile Include="OnREEF\ResultHandler\ResultOutputLocation.cs" />
-    <Compile Include="OnREEF\ResultHandler\WriteResultHandler.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.REEF.IMRU.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup />
+  <Import Project="..\build.targets" />
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.nuspec b/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.nuspec
deleted file mode 100644
index 75c9ec5..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU/Org.Apache.REEF.IMRU.nuspec
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.IMRU</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.IMRU</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Iterative Map Reduce Update for REEF.</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>REEF IMRU</tags>
-    <dependencies>
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Network" version="$version$" />
-      <dependency id="Org.Apache.REEF.Driver" version="$version$" />
-      <dependency id="Org.Apache.REEF.Examples" version="$version$" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="protobuf-net" version="2.1.0" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 13fab4a..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.IMRU.Tests")]
-[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.cs
index 418631c..13fab4a 100644
--- a/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.IMRU/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,26 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-[assembly: AssemblyTitle("Org.Apache.REEF.IMRU")]
-[assembly: AssemblyDescription("Iterative Map Reduce Update (IMRU) API for REEF")]
-[assembly: AssemblyProduct("Org.Apache.REEF.IMRU")]
-
-[assembly: Guid("138891df-d331-4a5e-8514-775611c06f6c")]
-
-// Allow the tests project access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IMRU.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-
-// Allow the tests project access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.IMRU.Tests")]
+[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.IMRU/packages.config b/lang/cs/Org.Apache.REEF.IMRU/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.IMRU/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.DotNet.csproj b/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.DotNet.csproj
deleted file mode 100644
index c6fee1b..0000000
--- a/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.DotNet.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.IO.TestClient</AssemblyName>
-    <Description>REEF IO TestClient</Description>
-    <PackageTags>REEF IO TestClient</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-  </ItemGroup>
-
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.csproj b/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.csproj
index 00bccaf..08b4c8c 100644
--- a/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.csproj
+++ b/lang/cs/Org.Apache.REEF.IO.TestClient/Org.Apache.REEF.IO.TestClient.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,94 +17,24 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{19D27F4A-8215-4737-8FFE-0709264DF74D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.IO.TestClient</RootNamespace>
     <AssemblyName>Org.Apache.REEF.IO.TestClient</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>REEF IO TestClient</Description>
+    <PackageTags>REEF IO TestClient</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\build.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-    <RestorePackages>true</RestorePackages>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="HadoopFileSystemTest.cs" />
-    <Compile Include="HadoopFileInputPartitionTest.cs" />
-    <Compile Include="Run.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj">
-      <Project>{4e69d40a-26d6-4d4a-b96d-729946c07fe1}</Project>
-      <Name>Org.Apache.REEF.Bridge</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj">
-      <Project>{b1b43b60-ddd0-4805-a9b4-ba84a0ccb7c7}</Project>
-      <Name>Org.Apache.REEF.Network.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+
+  <Import Project="..\build.targets"/>
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IO.TestClient/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.IO.TestClient/Properties/AssemblyInfo.cs
deleted file mode 100644
index 9c747fd..0000000
--- a/lang/cs/Org.Apache.REEF.IO.TestClient/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.IO.TestClient")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.IO.TestClient")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("19d27f4a-8215-4737-8ffe-0709264df74d")]
diff --git a/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.DotNet.csproj
deleted file mode 100644
index 15f0d18..0000000
--- a/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.DotNet.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.IO.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Azure.DataLake.Store" Version="$(MicrosoftDataLakeStoreVersion)" />
-    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
-    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
-    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
-    <PackageReference Include="System.Net.Sockets" Version="4.3.0" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.csproj b/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.csproj
index da352b4..6132616 100644
--- a/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.IO.Tests/Org.Apache.REEF.IO.Tests.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,133 +15,23 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{CCFAFD31-D057-42CC-AD2C-2001E921D949}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.IO.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.IO.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <RestorePackages>true</RestorePackages>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Azure.DataLake.Store, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Azure.DataLake.Store.1.0.4\lib\net452\Microsoft.Azure.DataLake.Store.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Azure.KeyVault.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Data.Edm, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.Edm.5.8.2\lib\net40\Microsoft.Data.Edm.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Data.OData, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.OData.5.8.2\lib\net40\Microsoft.Data.OData.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Data.Services.Client, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.Services.Client.5.8.2\lib\net40\Microsoft.Data.Services.Client.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.28.3.860, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms, Version=2.28.3.860, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Rest.ClientRuntime.2.3.10\lib\net452\Microsoft.Rest.ClientRuntime.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime.Azure.Authentication, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.1\lib\net452\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Storage, Version=8.1.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\WindowsAzure.Storage.8.1.3\lib\net45\Microsoft.WindowsAzure.Storage.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Management" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Spatial, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\System.Spatial.5.8.2\lib\net40\System.Spatial.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-    <Reference Include="NSubstitute, Version=$(NSubstituteVersion), Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\NSubstitute.$(NSubstituteVersion)\lib\net45\NSubstitute.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
+    <PackageReference Include="Microsoft.Azure.DataLake.Store" Version="$(MicrosoftDataLakeStoreVersion)" />
+    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
+    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
+    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
+    <PackageReference Include="System.Net.Sockets" Version="4.3.0" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="FileSystemTestUtilities.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="TestAzureBlockBlobFileSystem.cs" />
-    <Compile Include="TestAzureDataLakeFileSystemE2E.cs" />
-    <Compile Include="TestAzureBlockBlobFileSystemE2E.cs" />
-    <Compile Include="TestAzureDataLakeFileSystem.cs" />
-    <Compile Include="TestFilePartitionInputDataSet.cs" />
-    <Compile Include="TestHadoopFileSystem.cs" />
-    <Compile Include="TestLocalFileSystem.cs" />
-    <Compile Include="TestRandomInputDataSet.cs" />
-    <Compile Include="TestTempFolderCreator.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config" />
-    <None Include="packages.config">
-      <SubType>Designer</SubType>
-    </None>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(NuGetError)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-</Project>
\ No newline at end of file
+  <Import Project="..\build.Test.targets" />
+</Project>
diff --git a/lang/cs/Org.Apache.REEF.IO.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.IO.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index bb79944..0000000
--- a/lang/cs/Org.Apache.REEF.IO.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("Org.Apache.REEF.IO.Tests")]
-[assembly: AssemblyDescription("Tests for the IO Library for REEF")]
-[assembly: AssemblyProduct("Org.Apache.REEF.IO.Tests")]
-
-[assembly: Guid("a22b790a-0432-4395-9949-bf8e3958f061")]
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IO.Tests/packages.config b/lang/cs/Org.Apache.REEF.IO.Tests/packages.config
deleted file mode 100644
index 285e0b9..0000000
--- a/lang/cs/Org.Apache.REEF.IO.Tests/packages.config
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Azure.DataLake.Store" version="1.0.4" targetFramework="net452" />
-  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net452" />
-  <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.28.3" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime" version="2.3.10" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.3.1" targetFramework="net452" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net452" />
-  <package id="NLog" version="4.4.12" targetFramework="net452" />
-  <package id="NSubstitute" version="1.8.2.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net452" />
-  <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net452" />
-  <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net452" />
-  <package id="System.Net.Requests" version="4.0.11" targetFramework="net452" />
-  <package id="System.Spatial" version="5.8.2" targetFramework="net452" />
-  <package id="WindowsAzure.Storage" version="8.1.1" targetFramework="net452" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.DotNet.csproj b/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.DotNet.csproj
deleted file mode 100644
index 3dc419e..0000000
--- a/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.DotNet.csproj
+++ /dev/null
@@ -1,50 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.IO</AssemblyName>
-    <Description>I/O library for Apache REEF</Description>
-    <PackageTags> Apache REEF IO</PackageTags>
-    <DefineConstants>REEF_DOTNET_BUILD</DefineConstants>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Azure.DataLake.Store" Version="$(MicrosoftDataLakeStoreVersion)" />
-    <PackageReference Include="Microsoft.Azure.KeyVault.Core" Version="2.0.4" />
-    <PackageReference Include="Microsoft.Azure.Management.DataLake.Store" Version="2.2.1" />
-    <PackageReference Include="Microsoft.Data.Edm" Version="5.8.2" />
-    <PackageReference Include="Microsoft.Data.OData" Version="5.8.2" />
-    <PackageReference Include="Microsoft.Data.Services.Client" Version="5.8.2" />
-    <PackageReference Include="Microsoft.Rest.ClientRuntime" Version="2.3.10" />
-    <PackageReference Include="Microsoft.Rest.ClientRuntime.Azure" Version="3.3.7" />
-    <PackageReference Include="Microsoft.Rest.ClientRuntime.Azure.Authentication" Version="2.3.1" />
-    <PackageReference Include="System.Spatial" Version="5.8.2" />
-    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.4.0" />
-    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
-    <PackageReference Include="System.Net.Sockets" Version="4.3.0" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.csproj b/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.csproj
index f651c84..94f83a7 100644
--- a/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.csproj
+++ b/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,184 +17,34 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{DEC0F0A8-DBEF-4EBF-B69C-E2369C15ABF1}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.IO</RootNamespace>
     <AssemblyName>Org.Apache.REEF.IO</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+    <Description>I/O library for Apache REEF</Description>
+    <PackageTags> Apache REEF IO</PackageTags>
+    <DefineConstants>REEF_DOTNET_BUILD</DefineConstants>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Azure.DataLake.Store, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Azure.DataLake.Store.1.0.4\lib\net452\Microsoft.Azure.DataLake.Store.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Azure.KeyVault.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Azure.Management.DataLake.Store, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Azure.Management.DataLake.Store.2.2.1\lib\net452\Microsoft.Azure.Management.DataLake.Store.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Data.Edm, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.Edm.5.8.2\lib\net40\Microsoft.Data.Edm.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.OData, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.OData.5.8.2\lib\net40\Microsoft.Data.OData.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.Services.Client, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.Services.Client.5.8.2\lib\net40\Microsoft.Data.Services.Client.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Rest.ClientRuntime.2.3.10\lib\net452\Microsoft.Rest.ClientRuntime.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime.Azure, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Rest.ClientRuntime.Azure.3.3.7\lib\net452\Microsoft.Rest.ClientRuntime.Azure.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.28.3.860, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms, Version=2.28.3.860, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Rest.ClientRuntime.Azure.Authentication, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.1\lib\net452\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Storage, Version=8.1.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\WindowsAzure.Storage.8.1.3\lib\net45\Microsoft.WindowsAzure.Storage.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Management" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Spatial, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\System.Spatial.5.8.2\lib\net40\System.Spatial.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <PackageReference Include="Microsoft.Azure.DataLake.Store" Version="$(MicrosoftDataLakeStoreVersion)" />
+    <PackageReference Include="Microsoft.Azure.KeyVault.Core" Version="2.0.4" />
+    <PackageReference Include="Microsoft.Azure.Management.DataLake.Store" Version="2.2.1" />
+    <PackageReference Include="Microsoft.Data.Edm" Version="5.8.2" />
+    <PackageReference Include="Microsoft.Data.OData" Version="5.8.2" />
+    <PackageReference Include="Microsoft.Data.Services.Client" Version="5.8.2" />
+    <PackageReference Include="Microsoft.Rest.ClientRuntime" Version="2.3.10" />
+    <PackageReference Include="Microsoft.Rest.ClientRuntime.Azure" Version="3.3.7" />
+    <PackageReference Include="Microsoft.Rest.ClientRuntime.Azure.Authentication" Version="2.3.1" />
+    <PackageReference Include="System.Spatial" Version="5.8.2" />
+    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.4.0" />
+    <PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
+    <PackageReference Include="System.Net.Sockets" Version="4.3.0" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="FileSystem\AzureBlob\AzureBlockBlobFileSystemConfiguration.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureBlobType.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureBlockBlobFileSystemConfigurationProvider.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureCloudBlockBlob.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureBlockBlobFileSystem.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureCloudBlobClient.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureCloudBlobDirectory.cs" />
-    <Compile Include="FileSystem\AzureBlob\ICloudBlockBlob.cs" />
-    <Compile Include="FileSystem\AzureBlob\RetryPolicy\IAzureBlobRetryPolicy.cs" />
-    <Compile Include="FileSystem\AzureBlob\RetryPolicy\DefaultAzureBlobRetryPolicy.cs" />
-    <Compile Include="FileSystem\AzureBlob\ICloudBlobClient.cs" />
-    <Compile Include="FileSystem\AzureBlob\AzureCloudBlobContainer.cs" />
-    <Compile Include="FileSystem\AzureBlob\Parameters\AzureStorageConnectionString.cs" />
-    <Compile Include="FileSystem\AzureDataLake\IDataLakeStoreClient.cs" />
-    <Compile Include="FileSystem\AzureDataLake\AzureDataLakeStoreClient.cs" />
-    <Compile Include="FileSystem\AzureDataLake\AzureDataLakeFileSystem.cs" />
-    <Compile Include="FileSystem\AzureDataLake\AzureDataLakeFileSystemConfiguration.cs" />
-    <Compile Include="FileSystem\AzureDataLake\AzureDataLakeFileSystemConfigurationProvider.cs" />
-    <Compile Include="FileSystem\AzureDataLake\IAdlsCredentials.cs" />
-    <Compile Include="FileSystem\AzureDataLake\SecretKeyAdlsCredentials.cs" />
-    <Compile Include="FileSystem\AzureDataLake\Parameters\DataLakeStorageAccountName.cs" />
-    <Compile Include="FileSystem\AzureDataLake\Parameters\Tenant.cs" />
-    <Compile Include="FileSystem\AzureDataLake\Parameters\TokenAudience.cs" />
-    <Compile Include="FileSystem\AzureDataLake\Parameters\ClientId.cs" />
-    <Compile Include="FileSystem\AzureDataLake\Parameters\SecretKey.cs" />
-    <Compile Include="FileSystem\FileStatus.cs" />
-    <Compile Include="FileSystem\Hadoop\CommandResult.cs" />
-    <Compile Include="FileSystem\Hadoop\HDFSConfigurationWithoutDriverBinding.cs" />
-    <Compile Include="FileSystem\Hadoop\HadoopFileSystemConfiguration.cs" />
-    <Compile Include="FileSystem\Hadoop\HadoopFileSystemConfigurationProvider.cs" />
-    <Compile Include="FileSystem\Hadoop\HDFSCommandRunner.cs" />
-    <Compile Include="FileSystem\Hadoop\HadoopFileSystem.cs" />
-    <Compile Include="FileSystem\Hadoop\Parameters\CommandTimeOut.cs" />
-    <Compile Include="FileSystem\Hadoop\Parameters\HadoopHome.cs" />
-    <Compile Include="FileSystem\Hadoop\Parameters\NumberOfRetries.cs" />
-    <Compile Include="FileSystem\AzureBlob\ICloudBlobDirectory.cs" />
-    <Compile Include="FileSystem\IFileSystem.cs" />
-    <Compile Include="FileSystem\AzureBlob\ICloudBlobContainer.cs" />
-    <Compile Include="FileSystem\Local\LocalFileSystem.cs" />
-    <Compile Include="FileSystem\Local\LocalFileSystemConfiguration.cs" />
-    <Compile Include="Files\DefaultDirectoryInfo.cs" />
-    <Compile Include="Files\DefaultFileInfo.cs" />
-    <Compile Include="Files\FileSystemInfoFactory.cs" />
-    <Compile Include="Files\IDirectoryInfo.cs" />
-    <Compile Include="Files\IFileInfo.cs" />
-    <Compile Include="Files\IFileSystemInfo.cs" />
-    <Compile Include="PartitionedData\FileSystem\FileSystemInputPartition.cs" />
-    <Compile Include="PartitionedData\FileSystem\FileInputPartitionDescriptor.cs" />
-    <Compile Include="PartitionedData\FileSystem\Parameters\CopyToLocal.cs" />
-    <Compile Include="PartitionedData\FileSystem\Parameters\FileDeSerializerConfigString.cs" />
-    <Compile Include="PartitionedData\FileSystem\IFileDeSerializer.cs" />
-    <Compile Include="PartitionedData\FileSystem\FileSystemPartitionInputDataSet.cs" />
-    <Compile Include="PartitionedData\FileSystem\FileSystemInputPartitionConfiguration.cs" />
-    <Compile Include="PartitionedData\FileSystem\Parameters\FilePathsForInputPartitions.cs" />
-    <Compile Include="PartitionedData\FileSystem\Parameters\FilePathsInInputPartition.cs" />
-    <Compile Include="PartitionedData\IInputPartition.cs" />
-    <Compile Include="PartitionedData\IPartitionDescriptor.cs" />
-    <Compile Include="PartitionedData\IPartitionedInputDataSet.cs" />
-    <Compile Include="PartitionedData\Random\Parameters\NumberOfDoublesPerPartition.cs" />
-    <Compile Include="PartitionedData\Random\Parameters\NumberOfPartitions.cs" />
-    <Compile Include="PartitionedData\Random\Parameters\PartitionId.cs" />
-    <Compile Include="PartitionedData\Random\RandomInputDataConfiguration.cs" />
-    <Compile Include="PartitionedData\Random\RandomInputDataSet.cs" />
-    <Compile Include="PartitionedData\Random\RandomInputPartition.cs" />
-    <Compile Include="PartitionedData\Random\RandomInputPartitionDescriptor.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="TempFileCreation\ITempFileCreator.cs" />
-    <Compile Include="TempFileCreation\TempFileFolder.cs" />
-    <Compile Include="TempFileCreation\TempFileConfigurationModule.cs" />
-    <Compile Include="TempFileCreation\TempFileConfigurationProvider.cs" />
-    <Compile Include="TempFileCreation\TempFileCreator.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.REEF.IO.nuspec" />
-    <None Include="packages.config">
-      <SubType>Designer</SubType>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97DBB573-3994-417A-9F69-FFA25F00D2A6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79E7F89A-1DFB-45E1-8D43-D71A954AEB98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545A0582-4105-44CE-B99C-B1379514A630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup />
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets" />
+</Project>
diff --git a/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.nuspec b/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.nuspec
deleted file mode 100644
index 15c302a..0000000
--- a/lang/cs/Org.Apache.REEF.IO/Org.Apache.REEF.IO.nuspec
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.IO</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.IO</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>I/O Library for Apache REEF</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>REEF IO</tags>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.IO\Org.Apache.REEF.IO.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.IO\Org.Apache.REEF.IO.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index dd27a37..0000000
--- a/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IO.Tests")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IO.TestClient")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Client.Tests")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests")]
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
diff --git a/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.cs
index 6cda1e6..dd27a37 100644
--- a/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.IO/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,41 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-[assembly: AssemblyTitle("Org.Apache.REEF.IO")]
-[assembly: AssemblyDescription("IO Library for REEF")]
-[assembly: AssemblyProduct("Org.Apache.REEF.IO")]
-
-[assembly: Guid("58c49df4-8dc0-4f58-9a7e-a341d33e40ee")]
-
-// Allow the tests project access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IO.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.IO.TestClient, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Client.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-
-// Allow NSubstitute to create proxy implementations
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=002400000480000" +
- "0940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a36" +
- "02f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0ba" +
- "c1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924c" +
- "ceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
+// Allow the tests access to `internal` APIs
+[assembly: InternalsVisibleTo("Org.Apache.REEF.IO.Tests")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.IO.TestClient")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Client.Tests")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Tests")]
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
diff --git a/lang/cs/Org.Apache.REEF.IO/packages.config b/lang/cs/Org.Apache.REEF.IO/packages.config
deleted file mode 100644
index 8473e55..0000000
--- a/lang/cs/Org.Apache.REEF.IO/packages.config
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Azure.DataLake.Store" version="1.0.4" targetFramework="net452" />
-  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net45" />
-  <package id="Microsoft.Azure.Management.DataLake.Store" version="2.2.1" targetFramework="net452" />
-  <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.28.3" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime" version="2.3.10" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.7" targetFramework="net452" />
-  <package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.3.1" targetFramework="net452" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="NLog" version="4.4.12" targetFramework="net452" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net452" />
-  <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net452" />
-  <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net452" />
-  <package id="System.Net.Requests" version="4.0.11" targetFramework="net452" />
-  <package id="System.Spatial" version="5.8.2" targetFramework="net452" />
-  <package id="WindowsAzure.Storage" version="8.1.3" targetFramework="net452" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.DotNet.csproj b/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.DotNet.csproj
deleted file mode 100644
index 0bbdb48..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.DotNet.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Network.Examples.Client</AssemblyName>
-    <Description>REEF Network Client examples</Description>
-    <PackageTags>REEF Examples Network Client</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.csproj b/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.csproj
index 700e419..42f75ce 100644
--- a/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.csproj
+++ b/lang/cs/Org.Apache.REEF.Network.Examples.Client/Org.Apache.REEF.Network.Examples.Client.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,94 +17,22 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{E6DA8BC4-A346-48A7-99E3-D47ADD7DB975}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Network.Examples.Client</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Network.Examples.Client</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+    <Description>REEF Network Client examples</Description>
+    <PackageTags>REEF Examples Network Client</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="BroadcastAndReduceClient.cs" />
-    <Compile Include="PipelineBroadcastAndReduceClient.cs" />
-    <Compile Include="Run.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\Org.Apache.REEF.Client\run.cmd">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj">
-      <Project>{4e69d40a-26d6-4d4a-b96d-729946c07fe1}</Project>
-      <Name>Org.Apache.REEF.Bridge</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj">
-      <Project>{b1b43b60-ddd0-4805-a9b4-ba84a0ccb7c7}</Project>
-      <Name>Org.Apache.REEF.Network.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.targets"/>
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples.Client/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Network.Examples.Client/Properties/AssemblyInfo.cs
deleted file mode 100644
index bf2f045..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Examples.Client/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("Org.Apache.REEF.Network.Examples.Client")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Network.Examples.Client")]
-
-[assembly: Guid("22ae839f-8ae7-46ac-b4bd-6d0d32213d83")]
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples.Client/packages.config b/lang/cs/Org.Apache.REEF.Network.Examples.Client/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Examples.Client/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.DotNet.csproj b/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.DotNet.csproj
deleted file mode 100644
index cf65931..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.DotNet.csproj
+++ /dev/null
@@ -1,36 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Network.Examples</AssemblyName>
-    <Description>Examples for network services for REEF</Description>
-    <PackageTags>REEF Network services examples</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.csproj b/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.csproj
index d37efed..0855e6d 100644
--- a/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.csproj
+++ b/lang/cs/Org.Apache.REEF.Network.Examples/Org.Apache.REEF.Network.Examples.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,79 +17,20 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{B1B43B60-DDD0-4805-A9B4-BA84A0CCB7C7}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Network.Examples</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Network.Examples</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Examples for network services for REEF</Description>
+    <PackageTags>REEF Network services examples</PackageTags>
   </PropertyGroup>
-  <PropertyGroup>
-    <StartupObject />
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="GroupCommunication\BroadcastReduceDriverAndTasks\BroadcastReduceDriver.cs" />
-    <Compile Include="GroupCommunication\BroadcastReduceDriverAndTasks\MasterTask.cs" />
-    <Compile Include="GroupCommunication\BroadcastReduceDriverAndTasks\SlaveTask.cs" />
-    <Compile Include="GroupCommunication\GroupTestConfig.cs" />
-    <Compile Include="GroupCommunication\GroupTestConstants.cs" />
-    <Compile Include="GroupCommunication\PipelineBroadcastReduceDriverAndTasks\PipelinedBroadcastReduceDriver.cs" />
-    <Compile Include="GroupCommunication\PipelineBroadcastReduceDriverAndTasks\PipelinedMasterTask.cs" />
-    <Compile Include="GroupCommunication\PipelineBroadcastReduceDriverAndTasks\PipelinedSlaveTask.cs" />
-    <Compile Include="GroupCommunication\ScatterReduceDriverAndTasks\MasterTask.cs" />
-    <Compile Include="GroupCommunication\ScatterReduceDriverAndTasks\ScatterReduceDriver.cs" />
-    <Compile Include="GroupCommunication\ScatterReduceDriverAndTasks\SlaveTask.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets"/>
+</Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Network.Examples/Properties/AssemblyInfo.cs
deleted file mode 100644
index 94d4511..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Examples/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Network.Examples")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Network.Examples")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("a3eafd9d-1be4-44a7-9f1c-9a81a1e59897")]
diff --git a/lang/cs/Org.Apache.REEF.Network.Examples/packages.config b/lang/cs/Org.Apache.REEF.Network.Examples/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Examples/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.DotNet.csproj
deleted file mode 100644
index 3ee6b09..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.DotNet.csproj
+++ /dev/null
@@ -1,35 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Network.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.csproj b/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.csproj
index 84147a0..2cd937f 100644
--- a/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Network.Tests/Org.Apache.REEF.Network.Tests.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,86 +15,21 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{2D30B07C-4DDC-4932-A293-C5CAB6BE34D9}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Network.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Network.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-    <IsCodedUITest>False</IsCodedUITest>
-    <TestProjectType>UnitTest</TestProjectType>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Reactive.Core">
-      <HintPath>$(PackagesDir)\System.Reactive.Core.$(SystemReactiveVersion)\lib\net45\System.Reactive.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Reactive.Interfaces">
-      <HintPath>$(PackagesDir)\System.Reactive.Interfaces.$(SystemReactiveVersion)\lib\net45\System.Reactive.Interfaces.dll</HintPath>
-    </Reference>
+    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="GroupCommunication\PipeliningTests.cs" />
-    <Compile Include="TcpClientConfigurationModuleTests.cs" />
-    <Compile Include="BlockingCollectionExtensionTests.cs" />
-    <Compile Include="GroupCommunication\GroupCommuDriverTests.cs" />
-    <Compile Include="GroupCommunication\GroupCommunicationTests.cs" />
-    <Compile Include="GroupCommunication\GroupCommunicationTreeTopologyTests.cs" />
-    <Compile Include="GroupCommunication\StreamingCodecTests.cs" />
-    <Compile Include="NamingService\NameServerTests.cs" />
-    <Compile Include="NetworkService\NetworkServiceTests.cs" />
-    <Compile Include="NetworkService\StreamingNetworkServiceTests.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj">
-      <Project>{b1b43b60-ddd0-4805-a9b4-ba84a0ccb7c7}</Project>
-      <Name>Org.Apache.REEF.Network.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.Test.targets" />
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Network.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Network.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index b84c284..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Network.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Network.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("146f73c7-6a44-4e98-9b4a-be2584930a66")]
diff --git a/lang/cs/Org.Apache.REEF.Network.Tests/packages.config b/lang/cs/Org.Apache.REEF.Network.Tests/packages.config
deleted file mode 100644
index dd784dc..0000000
--- a/lang/cs/Org.Apache.REEF.Network.Tests/packages.config
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.Reactive.Core" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reactive.Interfaces" version="3.1.1" targetFramework="net451" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.DotNet.csproj b/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.DotNet.csproj
deleted file mode 100644
index ff49cb8..0000000
--- a/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.DotNet.csproj
+++ /dev/null
@@ -1,42 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Network</AssemblyName>
-    <Description>Network services for REEF</Description>
-    <PackageTags>REEF Network services</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="1.1.2" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.csproj b/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.csproj
index 1e46689..2a38743 100644
--- a/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.csproj
+++ b/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,215 +17,26 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{883CE800-6A6A-4E0A-B7FE-C054F4F2C1DC}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Network</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Network</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Network services for REEF</Description>
+    <PackageTags>REEF Network services</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Extensions.Caching.Abstractions, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Caching.Abstractions.1.1.2\lib\netstandard1.0\Microsoft.Extensions.Caching.Abstractions.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Extensions.Caching.Memory, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Caching.Memory.1.1.2\lib\net451\Microsoft.Extensions.Caching.Memory.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.1.1.1\lib\netstandard1.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Extensions.Options, Version=1.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Options.1.1.2\lib\netstandard1.0\Microsoft.Extensions.Options.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Extensions.Primitives, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
-      <HintPath>..\packages\Microsoft.Extensions.Primitives.1.1.1\lib\netstandard1.0\Microsoft.Extensions.Primitives.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.Composition" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.IO.Compression" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Numerics" />
-    <Reference Include="System.Reactive.Core">
-      <HintPath>$(PackagesDir)\System.Reactive.Core.$(SystemReactiveVersion)\lib\net45\System.Reactive.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Reactive.Interfaces">
-      <HintPath>$(PackagesDir)\System.Reactive.Interfaces.$(SystemReactiveVersion)\lib\net45\System.Reactive.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Runtime.Caching" />
-    <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.3.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Xml.Linq" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
+    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="1.1.2" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Elastic\Driver\ITaskSetManager.cs" />
-    <Compile Include="Elastic\Driver\IElasticTaskSetSubscription.cs" />
-    <Compile Include="Elastic\Driver\IElasticTaskSetService.cs" />
-    <Compile Include="Elastic\Failures\IFailureStateMachine.cs" />
-    <Compile Include="Elastic\Failures\IFailureState.cs" />
-    <Compile Include="Elastic\Failures\IFailureEvent.cs" />
-    <Compile Include="Elastic\Failures\IFailureResponse.cs" />
-    <Compile Include="Group\Config\CodecToStreamingCodecConfiguration.cs" />
-    <Compile Include="Group\Config\StreamingCodecConfigurationMinusMessage.cs" />
-    <Compile Include="Group\Driver\Impl\GeneralGroupCommunicationMessage.cs" />
-    <Compile Include="Group\Config\CodecConfiguration.cs" />
-    <Compile Include="Group\Config\GroupCommConfigurationOptions.cs" />
-    <Compile Include="Group\Config\PipelineDataConverterConfiguration.cs" />
-    <Compile Include="Group\Config\ReduceFunctionConfiguration.cs" />
-    <Compile Include="Group\Config\StreamingCodecConfiguration.cs" />
-    <Compile Include="Group\Driver\ICommunicationGroupDriver.cs" />
-    <Compile Include="Group\Driver\IGroupCommDriver.cs" />
-    <Compile Include="Group\Driver\Impl\CommunicationGroupDriver.cs" />
-    <Compile Include="Group\Driver\Impl\GroupCommunicationMessage.cs" />
-    <Compile Include="Group\Driver\Impl\GroupCommunicationMessageStreamingCodec.cs" />
-    <Compile Include="Group\Driver\Impl\MessageType.cs" />
-    <Compile Include="Group\Driver\Impl\GroupCommDriver.cs" />
-    <Compile Include="Group\Driver\Impl\TaskStarter.cs" />
-    <Compile Include="Group\Operators\IBroadcastReceiver.cs" />
-    <Compile Include="Group\Operators\IBroadcastSender.cs" />
-    <Compile Include="Group\Operators\IGroupCommOperator.cs" />
-    <Compile Include="Group\Operators\IGroupCommOperatorInternal.cs" />
-    <Compile Include="Group\Operators\Impl\BroadcastOperatorSpec.cs" />
-    <Compile Include="Group\Operators\Impl\BroadcastReceiver.cs" />
-    <Compile Include="Group\Operators\Impl\BroadcastSender.cs" />
-    <Compile Include="Group\Operators\Impl\PipelinedReduceFunction.cs" />
-    <Compile Include="Group\Operators\Impl\ReduceFunction.cs" />
-    <Compile Include="Group\Operators\Impl\ReduceOperatorSpec.cs" />
-    <Compile Include="Group\Operators\Impl\ReduceReceiver.cs" />
-    <Compile Include="Group\Operators\Impl\ReduceSender.cs" />
-    <Compile Include="Group\Operators\Impl\ScatterOperatorSpec.cs" />
-    <Compile Include="Group\Operators\Impl\ScatterReceiver.cs" />
-    <Compile Include="Group\Operators\Impl\ScatterSender.cs" />
-    <Compile Include="Group\Operators\Impl\Sender.cs" />
-    <Compile Include="Group\Operators\IOperatorSpec.cs" />
-    <Compile Include="Group\Pipelining\Impl\ArrayPipelineDataConverter.cs" />
-    <Compile Include="Group\Pipelining\StreamingPipelineMessageCodec.cs" />
-    <Compile Include="Group\Task\ICommunicationGroupClientInternal.cs" />
-    <Compile Include="Group\Task\Impl\ChildNodeContainer.cs" />
-    <Compile Include="Group\Task\Impl\NodeMessageObserver.cs" />
-    <Compile Include="Group\Task\Impl\NodeObserverIdentifier.cs" />
-    <Compile Include="Group\Task\Impl\TaskMessageObserver.cs" />
-    <Compile Include="Group\Task\IOperatorTopology.cs" />
-    <Compile Include="Group\Operators\IReduceFunction.cs" />
-    <Compile Include="Group\Operators\IReduceReceiver.cs" />
-    <Compile Include="Group\Operators\IReduceSender.cs" />
-    <Compile Include="Group\Operators\IScatterReceiver.cs" />
-    <Compile Include="Group\Operators\IScatterSender.cs" />
-    <Compile Include="Group\Pipelining\Impl\DefaultPipelineDataConverter.cs" />
-    <Compile Include="Group\Pipelining\IPipelineDataConverter.cs" />
-    <Compile Include="Group\Pipelining\PipelineMessage.cs" />
-    <Compile Include="Group\Pipelining\PipelineMessageCodec.cs" />
-    <Compile Include="Group\Task\ICommunicationGroupClient.cs" />
-    <Compile Include="Group\Task\IGroupCommClient.cs" />
-    <Compile Include="Group\Task\Impl\CommunicationGroupClient.cs" />
-    <Compile Include="Group\Task\Impl\GroupCommClient.cs" />
-    <Compile Include="Group\Task\Impl\GroupCommNetworkObserver.cs" />
-    <Compile Include="Group\Task\Impl\NodeStruct.cs" />
-    <Compile Include="Group\Task\Impl\OperatorTopology.cs" />
-    <Compile Include="Group\Topology\FlatTopology.cs" />
-    <Compile Include="Group\Topology\ITopology.cs" />
-    <Compile Include="Group\Topology\TaskNode.cs" />
-    <Compile Include="Group\Topology\TopologyTypes.cs" />
-    <Compile Include="Group\Topology\TreeTopology.cs" />
-    <Compile Include="Naming\Codec\NamingLookupRequestCodec.cs" />
-    <Compile Include="Naming\Codec\NamingLookupResponseCodec.cs" />
-    <Compile Include="Naming\Codec\NamingRegisterRequestCodec.cs" />
-    <Compile Include="Naming\Codec\NamingRegisterResponseCodec.cs" />
-    <Compile Include="Naming\Codec\NamingUnregisterRequestCodec.cs" />
-    <Compile Include="Naming\Contracts\AvroNamingAssignment.cs" />
-    <Compile Include="Naming\Contracts\AvroNamingLookupRequest.cs" />
-    <Compile Include="Naming\Contracts\AvroNamingLookupResponse.cs" />
-    <Compile Include="Naming\Contracts\AvroNamingRegisterRequest.cs" />
-    <Compile Include="Naming\Contracts\AvroNamingUnRegisterRequest.cs" />
-    <Compile Include="Naming\Events\NamingEvent.cs" />
-    <Compile Include="Naming\Events\NamingGetAllRequest.cs" />
-    <Compile Include="Naming\Events\NamingGetAllResponse.cs" />
-    <Compile Include="Naming\Events\NamingLookupRequest.cs" />
-    <Compile Include="Naming\Events\NamingLookupResponse.cs" />
-    <Compile Include="Naming\Events\NamingRegisterRequest.cs" />
-    <Compile Include="Naming\Events\NamingRegisterResponse.cs" />
-    <Compile Include="Naming\Events\NamingUnregisterRequest.cs" />
-    <Compile Include="Naming\Events\NamingUnregisterResponse.cs" />
-    <Compile Include="Naming\INameServer.cs" />
-    <Compile Include="Naming\NameCache.cs" />
-    <Compile Include="Naming\Parameters\NameCacheConfiguration.cs" />
-    <Compile Include="Naming\NameClient.cs" />
-    <Compile Include="Naming\NameLookupClient.cs" />
-    <Compile Include="Naming\NameRegisterClient.cs" />
-    <Compile Include="Naming\NameServer.cs" />
-    <Compile Include="Naming\Observers\NamingGetAllRequestObserver.cs" />
-    <Compile Include="Naming\Observers\NamingLookupRequestObserver.cs" />
-    <Compile Include="Naming\Observers\NamingRegisterRequestObserver.cs" />
-    <Compile Include="Naming\Observers\NamingUnregisterRequestObserver.cs" />
-    <Compile Include="NetworkService\Codec\ControlMessageCodec.cs" />
-    <Compile Include="NetworkService\Codec\NsMessageCodec.cs" />
-    <Compile Include="NetworkService\Codec\NsMessageProto.cs" />
-    <Compile Include="NetworkService\Codec\NsMessageStreamingCodec.cs" />
-    <Compile Include="NetworkService\Codec\StreamingCodecFunctionCache.cs" />
-    <Compile Include="NetworkService\ControlMessage.cs" />
-    <Compile Include="NetworkService\IConnection.cs" />
-    <Compile Include="NetworkService\INetworkService.cs" />
-    <Compile Include="NetworkService\NetworkService.cs" />
-    <Compile Include="NetworkService\NetworkServiceOptions.cs" />
-    <Compile Include="NetworkService\NsConnection.cs" />
-    <Compile Include="NetworkService\NsMessage.cs" />
-    <Compile Include="NetworkService\StreamingNetworkService.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="TcpClientConfigurationModule.cs" />
-    <Compile Include="TcpClientConfigurationProvider.cs" />
-    <Compile Include="Utilities\AvroUtils.cs" />
-    <Compile Include="Utilities\BlockingCollectionExtensions.cs" />
-    <Compile Include="Utilities\Utils.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.REEF.Network.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.targets"/>
 </Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.nuspec b/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.nuspec
deleted file mode 100644
index 17e3e16..0000000
--- a/lang/cs/Org.Apache.REEF.Network/Org.Apache.REEF.Network.nuspec
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Network</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Network</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Network services for reef</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <dependencies>
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-      <dependency id="Org.Apache.REEF.Wake" version="$version$" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="Org.Apache.REEF.Common" version="$version$" />
-      <dependency id="Org.Apache.REEF.Driver" version="$version$" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Network\Org.Apache.REEF.Network.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Network\Org.Apache.REEF.Network.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 0c60ea4..0000000
--- a/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Network.Tests")]
-
diff --git a/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.cs
index bd5d7f2..0c60ea4 100644
--- a/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Network/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,23 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Network")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Network")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b3f5e608-8908-4f06-a87e-5e41c88133ac")]
 
 // Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Network.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Network.Tests")]
+
diff --git a/lang/cs/Org.Apache.REEF.Network/packages.config b/lang/cs/Org.Apache.REEF.Network/packages.config
deleted file mode 100644
index a6425aa..0000000
--- a/lang/cs/Org.Apache.REEF.Network/packages.config
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Extensions.Caching.Abstractions" version="1.1.2" targetFramework="net451" />
-  <package id="Microsoft.Extensions.Caching.Memory" version="1.1.2" targetFramework="net451" />
-  <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.1.1" targetFramework="net451" />
-  <package id="Microsoft.Extensions.Options" version="1.1.2" targetFramework="net451" />
-  <package id="Microsoft.Extensions.Primitives" version="1.1.1" targetFramework="net451" />
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net451" />
-  <package id="NETStandard.Library" version="1.6.1" targetFramework="net451" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.Collections" version="4.3.0" targetFramework="net451" />
-  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net451" />
-  <package id="System.ComponentModel" version="4.3.0" targetFramework="net451" />
-  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net451" />
-  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net451" />
-  <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net451" />
-  <package id="System.Globalization" version="4.3.0" targetFramework="net451" />
-  <package id="System.IO" version="4.3.0" targetFramework="net451" />
-  <package id="System.IO.Compression" version="4.3.0" targetFramework="net451" />
-  <package id="System.Linq" version="4.3.0" targetFramework="net451" />
-  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="net451" />
-  <package id="System.Net.Http" version="4.3.0" targetFramework="net451" />
-  <package id="System.Net.Primitives" version="4.3.0" targetFramework="net451" />
-  <package id="System.ObjectModel" version="4.3.0" targetFramework="net451" />
-  <package id="System.Reactive.Core" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reactive.Interfaces" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reflection" version="4.3.0" targetFramework="net451" />
-  <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net451" />
-  <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net451" />
-  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net451" />
-  <package id="System.Runtime" version="4.3.0" targetFramework="net451" />
-  <package id="System.Runtime.CompilerServices.Unsafe" version="4.3.0" targetFramework="net451" />
-  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net451" />
-  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net451" />
-  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net451" />
-  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net451" />
-  <package id="System.Text.Encoding" version="4.3.0" targetFramework="net451" />
-  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net451" />
-  <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net451" />
-  <package id="System.Threading" version="4.3.0" targetFramework="net451" />
-  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="net451" />
-  <package id="System.Threading.Timer" version="4.3.0" targetFramework="net451" />
-  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net451" />
-  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="net451" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.DotNet.csproj b/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.DotNet.csproj
deleted file mode 100644
index c48bcfd..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.DotNet.csproj
+++ /dev/null
@@ -1,31 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Tang.Examples</AssemblyName>
-    <Description>Examples using the Tang framework</Description>
-    <PackageTags> Apache REEF tang dependency injection examples</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.csproj b/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.csproj
index 7f425d4..5c00309 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.csproj
+++ b/lang/cs/Org.Apache.REEF.Tang.Examples/Org.Apache.REEF.Tang.Examples.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,63 +17,15 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{711B7F32-196E-4C21-9DBD-AD59C4A7CF77}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Tang.Examples</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Tang.Examples</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Examples using the Tang framework</Description>
+    <PackageTags> Apache REEF tang dependency injection examples</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="AnonymousType.cs" />
-    <Compile Include="CheckChild.cs" />
-    <Compile Include="DocumentedLocalNamedParameter.cs" />
-    <Compile Include="FileNames.cs" />
-    <Compile Include="ForksInjectorInConstructor.cs" />
-    <Compile Include="GenericArgument.cs" />
-    <Compile Include="GenericAsArgument.cs" />
-    <Compile Include="NamedParameterConstructors.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ShortNameFooAB.cs" />
-    <Compile Include="SimpleConstructors.cs" />
-    <Compile Include="TestClasses.cs" />
-    <Compile Include="Timer.cs" />
-    <Compile Include="TweetExample.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets"/>
+</Project>
diff --git a/lang/cs/Org.Apache.REEF.Tang.Examples/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Tang.Examples/Properties/AssemblyInfo.cs
deleted file mode 100644
index 41d4cc3..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Examples/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Tang.Examples")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Tang.Examples")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("cb44520c-2fd1-4d3b-9b9a-250f94a11239")]
diff --git a/lang/cs/Org.Apache.REEF.Tang.Examples/packages.config b/lang/cs/Org.Apache.REEF.Tang.Examples/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Examples/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.DotNet.csproj
deleted file mode 100644
index 60cd8dd..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.DotNet.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Tang.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-      <None Include="simpleConstructorJavaProto.bin">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang.Examples\Org.Apache.REEF.Tang.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.csproj b/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.csproj
index 28b5a1c..582dc0c 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/Org.Apache.REEF.Tang.Tests.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,144 +15,26 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{D5EB94D0-3ABA-4853-9050-E36B196E17D2}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Tang.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Tang.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="ClassHierarchy\TestAnonymousType.cs" />
-    <Compile Include="ClassHierarchy\TestAvroSerialization.cs" />
-    <Compile Include="ClassHierarchy\TestClassHierarchy.cs" />
-    <Compile Include="ClassHierarchy\TestGeneric.cs" />
-    <Compile Include="ClassHierarchy\TestMultipleInterface.cs" />
-    <Compile Include="ClassHierarchy\TestNamedParameter.cs" />
-    <Compile Include="ClassHierarchy\TestParameterParser.cs" />
-    <Compile Include="ClassHierarchy\TestSerilization.cs" />
-    <Compile Include="Configuration\TestAvroConfiguration.cs" />
-    <Compile Include="Configuration\TestAvroSerializerRoundTrip.cs" />
-    <Compile Include="Configuration\TestConfiguration.cs" />
-    <Compile Include="Configuration\TestCsConfigurationBuilderExtension.cs" />
-    <Compile Include="Configuration\TestNegativeCases.cs" />
-    <Compile Include="Format\TestConfigurationModule.cs" />
-    <Compile Include="Format\TestConfigurationModuleForList.cs" />
-    <Compile Include="Format\TestTaskConfiguration.cs" />
-    <Compile Include="Injection\TestAmbigousConstructors.cs" />
-    <Compile Include="Injection\TestForkInjection.cs" />
-    <Compile Include="Injection\TestInjection.cs" />
-    <Compile Include="Injection\TestInjectionFuture.cs" />
-    <Compile Include="Injection\TestListInjection.cs" />
-    <Compile Include="Injection\TestMissingParameters.cs" />
-    <Compile Include="Injection\TestMissingParamtersInNested.cs" />
-    <Compile Include="Injection\TestMultipleConstructors.cs" />
-    <Compile Include="Injection\TestNamedParameter.cs" />
-    <Compile Include="Injection\TestSetInjection.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ScenarioTest\HttpHandlerConfiguration.cs" />
-    <Compile Include="ScenarioTest\HttpRuntimeConfiguration.cs" />
-    <Compile Include="ScenarioTest\HttpRuntimeStartHandler.cs" />
-    <Compile Include="ScenarioTest\HttpRuntimeStopHandler.cs" />
-    <Compile Include="ScenarioTest\HttpServer.cs" />
-    <Compile Include="ScenarioTest\IHttpHandler.cs" />
-    <Compile Include="ScenarioTest\JettyHandler.cs" />
-    <Compile Include="ScenarioTest\TestDefaultConstructor.cs" />
-    <Compile Include="ScenarioTest\TestHttpService.cs" />
-    <Compile Include="ScenarioTest\TestRuntimeClock.cs" />
-    <Compile Include="ScenarioTest\TestTrackingURIProvider.cs" />
-    <Compile Include="ScenarioTest\TrackingURIProvider.cs" />
-    <Compile Include="ScenarioTest\TrackingYRIProvider.cs" />
-    <Compile Include="SmokeTest\AnInterface.cs" />
-    <Compile Include="SmokeTest\AnInterfaceImplementation.cs" />
-    <Compile Include="SmokeTest\CyclicDependency.cs" />
-    <Compile Include="SmokeTest\CyclicDependencyClassOne.cs" />
-    <Compile Include="SmokeTest\CyclicDependencyClassTwo.cs" />
-    <Compile Include="SmokeTest\Handler.cs" />
-    <Compile Include="SmokeTest\InjectableClass.cs" />
-    <Compile Include="SmokeTest\ListOfBaseTypes.cs" />
-    <Compile Include="SmokeTest\ObjectTreeTest.cs" />
-    <Compile Include="SmokeTest\RootImplementation.cs" />
-    <Compile Include="SmokeTest\RootInterface.cs" />
-    <Compile Include="SmokeTest\RoundTripTest.cs" />
-    <Compile Include="SmokeTest\SetInterface.cs" />
-    <Compile Include="SmokeTest\SetInterfaceImplOne.cs" />
-    <Compile Include="SmokeTest\SetInterfaceImplTwo.cs" />
-    <Compile Include="SmokeTest\SetOfBaseTypes.cs" />
-    <Compile Include="SmokeTest\SetOfImplementations.cs" />
-    <Compile Include="SmokeTest\TestConfigurationModuleBuilder.cs" />
-    <Compile Include="Tang\TestDefaultImpementaion.cs" />
-    <Compile Include="Tang\TestExternalConstructors.cs" />
-    <Compile Include="Tang\TestLegacyConstructors.cs" />
-    <Compile Include="Tang\TestTang.cs" />
-    <Compile Include="Utilities\AssemblyLoaderTests.cs" />
-    <Compile Include="Utilities\TestUtilities.cs" />
-    <Compile Include="Utilities\Utilities.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="packages.config">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="simpleConstructorJavaProto.bin">
+      <None Include="simpleConstructorJavaProto.bin">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang.Examples\Org.Apache.REEF.Tang.Examples.csproj">
-      <Project>{711b7f32-196e-4c21-9dbd-ad59c4a7cf77}</Project>
-      <Name>Org.Apache.REEF.Tang.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang.Examples\Org.Apache.REEF.Tang.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.Test.targets" />
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8ff2334..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Tang.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Tang.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("fd47238d-600b-42cd-b62d-0724171a2bc4")]
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/packages.config b/lang/cs/Org.Apache.REEF.Tang.Tests/packages.config
deleted file mode 100644
index a8bc1be..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/packages.config
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.DotNet.csproj b/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.DotNet.csproj
deleted file mode 100644
index 2cb2f8d..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.DotNet.csproj
+++ /dev/null
@@ -1,31 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Tang.Tools</AssemblyName>
-    <Description>Tools for Tang</Description>
-    <PackageTags>Apache REEF Tang dependency injection</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetApp.props" />
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
-
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.csproj b/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.csproj
index d562047..c24508a 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.csproj
+++ b/lang/cs/Org.Apache.REEF.Tang.Tools/Org.Apache.REEF.Tang.Tools.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,60 +15,17 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{34A9CD98-0D15-4CA0-AEA5-E53593A31047}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Tang.Tools</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Tang.Tools</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Tools for Tang</Description>
+    <PackageTags>Apache REEF Tang dependency injection</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.App.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="ClassHierarchyBuilder.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-</Project>
\ No newline at end of file
+  <Import Project="..\build.targets"/>
+</Project>
+
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tools/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Tang.Tools/Properties/AssemblyInfo.cs
deleted file mode 100644
index 7d1a52d..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Tools/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Tang.Tools")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Tang.Tools")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8a034f16-c6c7-497a-b3c0-f8cfea1635e9")]
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tools/packages.config b/lang/cs/Org.Apache.REEF.Tang.Tools/packages.config
deleted file mode 100644
index f03af4e..0000000
--- a/lang/cs/Org.Apache.REEF.Tang.Tools/packages.config
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.DotNet.csproj b/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.DotNet.csproj
deleted file mode 100644
index 7305a5d..0000000
--- a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.DotNet.csproj
+++ /dev/null
@@ -1,35 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Tang</AssemblyName>
-    <Description>Tang is a dependency injection framework</Description>
-    <PackageTags> Apache REEF tang dependency injection</PackageTags>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj b/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
index d184ad7..5fafcec 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
+++ b/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -7,7 +7,9 @@
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
+
 http://www.apache.org/licenses/LICENSE-2.0
+
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -15,164 +17,19 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{97DBB573-3994-417A-9F69-FFA25F00D2A6}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Tang</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Tang</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
+    <Description>Tang is a dependency injection framework</Description>
+    <PackageTags> Apache REEF tang dependency injection</PackageTags>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Xml" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="Microsoft.Avro.Core" Version="$(AvroVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Annotations\DefaultImplementation.cs" />
-    <Compile Include="Annotations\Inject.cs" />
-    <Compile Include="Annotations\Name.cs" />
-    <Compile Include="Annotations\NamedParameter.cs" />
-    <Compile Include="Annotations\Parameter.cs" />
-    <Compile Include="Annotations\Unit.cs" />
-    <Compile Include="Exceptions\BindException.cs" />
-    <Compile Include="Exceptions\ClassHierarchyException.cs" />
-    <Compile Include="Exceptions\IllegalStateException.cs" />
-    <Compile Include="Exceptions\InjectionException.cs" />
-    <Compile Include="Exceptions\NameResolutionException.cs" />
-    <Compile Include="Exceptions\ParseException.cs" />
-    <Compile Include="Exceptions\ReefRuntimeException.cs" />
-    <Compile Include="Exceptions\TangApplicationException.cs" />
-    <Compile Include="Formats\AvroConfigurationDataContract\AvroConfiguration.cs" />
-    <Compile Include="Formats\AvroConfigurationDataContract\ConfigurationEntry.cs" />
-    <Compile Include="Formats\AvroConfigurationSerializer.cs" />
-    <Compile Include="Formats\ConfigurationFile.cs" />
-    <Compile Include="Formats\ConfigurationModule.cs" />
-    <Compile Include="Formats\ConfigurationModuleBuilder.cs" />
-    <Compile Include="Formats\IConfigurationSerializer.cs" />
-    <Compile Include="Formats\IImpl.cs" />
-    <Compile Include="Formats\IParam.cs" />
-    <Compile Include="Formats\OptionalImpl.cs" />
-    <Compile Include="Formats\OptionalParameter.cs" />
-    <Compile Include="Formats\Provides.cs" />
-    <Compile Include="Formats\RequiredImpl.cs" />
-    <Compile Include="Formats\RequiredParameter.cs" />
-    <Compile Include="Implementations\ClassHierarchy\AbstractNode.cs" />
-    <Compile Include="Implementations\ClassHierarchy\AvroClassHierarchy.cs" />
-    <Compile Include="Implementations\ClassHierarchy\AvroClassHierarchySerializer.cs" />
-    <Compile Include="Implementations\ClassHierarchy\AvroDataContract\AvroClassNode.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Implementations\ClassHierarchy\AvroDataContract\AvroConstructorArg.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Implementations\ClassHierarchy\AvroDataContract\AvroConstructorDef.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Implementations\ClassHierarchy\AvroDataContract\AvroNamedParameterNode.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Implementations\ClassHierarchy\AvroDataContract\AvroNode.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Implementations\ClassHierarchy\AvroDataContract\AvroPackageNode.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Implementations\ClassHierarchy\ClassHierarchyImpl.cs" />
-    <Compile Include="Implementations\ClassHierarchy\ClassNodeImpl.cs" />
-    <Compile Include="Implementations\ClassHierarchy\ConstructorArgImpl.cs" />
-    <Compile Include="Implementations\ClassHierarchy\ConstructorDefImpl.cs" />
-    <Compile Include="Implementations\ClassHierarchy\NamedParameterNodeImpl.cs" />
-    <Compile Include="Implementations\ClassHierarchy\NodeFactory.cs" />
-    <Compile Include="Implementations\ClassHierarchy\PackageNodeImpl.cs" />
-    <Compile Include="Implementations\ClassHierarchy\ParameterParser.cs" />
-    <Compile Include="Implementations\Configuration\ConfigurationBuilderImpl.cs" />
-    <Compile Include="Implementations\Configuration\ConfigurationImpl.cs" />
-    <Compile Include="Implementations\Configuration\Configurations.cs" />
-    <Compile Include="Implementations\Configuration\CsConfigurationBuilderImpl.cs" />
-    <Compile Include="Implementations\Configuration\CsConfigurationImpl.cs" />
-    <Compile Include="Implementations\InjectionPlan\Constructor.cs" />
-    <Compile Include="Implementations\InjectionPlan\CsInstance.cs" />
-    <Compile Include="Implementations\InjectionPlan\InjectionFuture.cs" />
-    <Compile Include="Implementations\InjectionPlan\InjectionFuturePlan.cs" />
-    <Compile Include="Implementations\InjectionPlan\InjectionPlan.cs" />
-    <Compile Include="Implementations\InjectionPlan\InjectorImpl.cs" />
-    <Compile Include="Implementations\InjectionPlan\ListInjectionPlan.cs" />
-    <Compile Include="Implementations\InjectionPlan\SetInjectionPlan.cs" />
-    <Compile Include="Implementations\InjectionPlan\Subplan.cs" />
-    <Compile Include="Implementations\Tang\TangFactory.cs" />
-    <Compile Include="Implementations\Tang\TangImpl.cs" />
-    <Compile Include="Interface\IAspect.cs" />
-    <Compile Include="Interface\IClassHierarchy.cs" />
-    <Compile Include="Interface\IClassHierarchySerializer.cs" />
-    <Compile Include="Interface\IConfiguration.cs" />
-    <Compile Include="Interface\IConfigurationBuilder.cs" />
-    <Compile Include="Interface\ICsClassHierarchy.cs" />
-    <Compile Include="Interface\ICsConfigurationBuilder.cs" />
-    <Compile Include="Interface\ICsInternalConfigurationBuilder.cs" />
-    <Compile Include="Interface\IExternalConstructor.cs" />
-    <Compile Include="Interface\IInjector.cs" />
-    <Compile Include="Interface\IConfigurationProvider.cs" />
-    <Compile Include="Interface\ITang.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Protobuf\class_hierarchy.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\injection_plan.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Protobuf\ProtocolBufferClassHierarchy.cs" />
-    <Compile Include="Protobuf\ProtocolBufferInjectionPlan.cs" />
-    <Compile Include="Types\IClassNode.cs" />
-    <Compile Include="Types\IConstructorArg.cs" />
-    <Compile Include="Types\IConstructorDef.cs" />
-    <Compile Include="Types\INamedParameterNode.cs" />
-    <Compile Include="Types\INode.cs" />
-    <Compile Include="Types\IPackageNode.cs" />
-    <Compile Include="Types\ITraversable.cs" />
-    <Compile Include="Util\AbstractMonotonicMultiMap.cs" />
-    <Compile Include="Util\AssemblyLoader.cs" />
-    <Compile Include="Util\GenericType.cs" />
-    <Compile Include="Util\Language.cs" />
-    <Compile Include="Util\MonotonicHashMap.cs" />
-    <Compile Include="Util\MonotonicHashSet.cs" />
-    <Compile Include="Util\MonotonicMultiHashMap.cs" />
-    <Compile Include="Util\MonotonicMultiMap.cs" />
-    <Compile Include="Util\MonotonicSet.cs" />
-    <Compile Include="Util\MonotonicTreeMap.cs" />
-    <Compile Include="Util\ReflectionUtilities.cs" />
-    <Compile Include="Util\SetValuedKey.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.REEF.Tang.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.targets"/>
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.nuspec b/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.nuspec
deleted file mode 100644
index abce6da..0000000
--- a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.nuspec
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Tang</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Tang</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Tang is a dependency injection framework</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>tang dependency injection</tags>
-    <dependencies>
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 5a43114..0000000
--- a/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tang.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.cs
index 7d39537..5a43114 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,23 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Tang")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Tang")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9be5f89c-7b7e-4236-ac54-10fda8eef58e")]
 
 // Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Tang.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Tang.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.Tang/packages.config b/lang/cs/Org.Apache.REEF.Tang/packages.config
deleted file mode 100644
index 4f96400..0000000
--- a/lang/cs/Org.Apache.REEF.Tang/packages.config
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.DotNet.csproj
deleted file mode 100644
index 06b94f4..0000000
--- a/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.DotNet.csproj
+++ /dev/null
@@ -1,51 +0,0 @@
-<Project>
-  <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Azure.KeyVault.Core" Version="2.0.4" />
-    <PackageReference Include="Microsoft.Data.Edm" Version="5.8.2" />
-    <PackageReference Include="Microsoft.Data.OData" Version="5.8.2" />
-    <PackageReference Include="Microsoft.Data.Services.Client" Version="5.8.2" />
-    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
-    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
-    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="System.Spatial" Version="5.8.2" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples.AllHandlers\Org.Apache.REEF.Examples.AllHandlers.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.csproj b/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.csproj
index 1df8499..fa8cc22 100644
--- a/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Tests/Org.Apache.REEF.Tests.csproj
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<Project>
+  <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -15,244 +15,37 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{988F90CF-A48D-4938-A4D2-FA3B758FB5A7}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Azure.KeyVault.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.Edm, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.Edm.5.8.2\lib\net40\Microsoft.Data.Edm.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.OData, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.OData.5.8.2\lib\net40\Microsoft.Data.OData.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Data.Services.Client, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\Microsoft.Data.Services.Client.5.8.2\lib\net40\Microsoft.Data.Services.Client.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.WindowsAzure.Storage, Version=8.1.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\WindowsAzure.Storage.8.1.3\lib\net45\Microsoft.WindowsAzure.Storage.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Reactive.Core">
-      <HintPath>$(PackagesDir)\System.Reactive.Core.$(SystemReactiveVersion)\lib\net45\System.Reactive.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Reactive.Interfaces">
-      <HintPath>$(PackagesDir)\System.Reactive.Interfaces.$(SystemReactiveVersion)\lib\net45\System.Reactive.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Spatial, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\System.Spatial.5.8.2\lib\net40\System.Spatial.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
+    <PackageReference Include="Microsoft.Azure.KeyVault.Core" Version="2.0.4" />
+    <PackageReference Include="Microsoft.Data.Edm" Version="5.8.2" />
+    <PackageReference Include="Microsoft.Data.OData" Version="5.8.2" />
+    <PackageReference Include="Microsoft.Data.Services.Client" Version="5.8.2" />
+    <PackageReference Include="WindowsAzure.Storage" Version="$(WindowsAzureStorageVersion)" />
+    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
+    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="System.Spatial" Version="5.8.2" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Functional\Bridge\HelloSimpleEventHandlers.cs" />
-    <Compile Include="Functional\Bridge\Parameters\ShouldThrowSerializableException.cs" />
-    <Compile Include="Functional\Bridge\TestBridgeClient.cs" />
-    <Compile Include="Functional\Bridge\TestCloseTask.cs" />
-    <Compile Include="Functional\Bridge\TestContextStack.cs" />
-    <Compile Include="Functional\Bridge\TestDriverConcurrency.cs" />
-    <Compile Include="Functional\Bridge\TestFailedEvaluatorEventHandler.cs" />
-    <Compile Include="Functional\Bridge\TestSecurityToken.cs" />
-    <Compile Include="Functional\Common\Task\ExceptionTask.cs" />
-    <Compile Include="Functional\Common\Task\NullTask.cs" />
-    <Compile Include="Functional\Failure\User\ContextStopExceptionTest.cs" />
-    <Compile Include="Functional\Common\EventMonitor.cs" />
-    <Compile Include="Functional\Failure\User\SendTaskMessageExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\SendContextMessageExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\ServiceConstructorExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\ReceiveContextMessageExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\ContextStartExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\ReceiveTaskMessageExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\TaskCallExceptionTest.cs" />
-    <Compile Include="Functional\Bridge\Exceptions\TestNonSerializableException.cs" />
-    <Compile Include="Functional\Bridge\Exceptions\TestSerializableException.cs" />
-    <Compile Include="Functional\Bridge\TestSimpleContext.cs" />
-    <Compile Include="Functional\Bridge\TestSimpleEventHandlers.cs" />
-    <Compile Include="Functional\Bridge\TestSuspendTask.cs" />
-    <Compile Include="Functional\Common\Task\Handlers\LoggingHandler.cs" />
-    <Compile Include="Functional\Common\Task\LoggingTask.cs" />
-    <Compile Include="Functional\Common\Task\Handlers\ExceptionThrowingHandler.cs" />
-    <Compile Include="Functional\Failure\User\TaskStartExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\TaskSuspendExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\UnhandledTaskExceptionInTaskTest.cs" />
-    <Compile Include="Functional\Failure\User\UnhandledThreadExceptionInTaskTest.cs" />
-    <Compile Include="Functional\Common\Task\WaitingTask.cs" />
-    <Compile Include="Functional\Driver\DriverTestStartHandler.cs" />
-    <Compile Include="Functional\Failure\BasePoisonedEvaluatorWithActiveContextDriver.cs" />
-    <Compile Include="Functional\Failure\BasePoisonedEvaluatorWithRunningTaskDriver.cs" />
-    <Compile Include="Functional\Failure\BasePoisonedEvaluatorDriver.cs" />
-    <Compile Include="Functional\Failure\TestEvaluatorWithActiveContextDelayedPoison.cs" />
-    <Compile Include="Functional\Failure\TestEvaluatorWithCompletedTaskDelayedPoison.cs" />
-    <Compile Include="Functional\Failure\TestEvaluatorWithRunningTaskDelayedPoison.cs" />
-    <Compile Include="Functional\Failure\TestEvaluatorWithActiveContextImmediatePoison.cs" />
-    <Compile Include="Functional\Failure\TestEvaluatorWithRunningTaskImmediatePoison.cs" />
-    <Compile Include="Functional\Failure\SleepTask.cs" />
-    <Compile Include="Functional\Failure\User\TaskCloseExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\TaskConstructorExceptionTest.cs" />
-    <Compile Include="Functional\Failure\User\TaskStopExceptionTest.cs" />
-    <Compile Include="Functional\FaultTolerant\TestContextStart.cs" />
-    <Compile Include="Functional\FaultTolerant\TestResubmitEvaluator.cs" />
-    <Compile Include="Functional\FaultTolerant\TestResubmitTask.cs" />
-    <Compile Include="Functional\IMRU\IMRUBroadcastReduceJobCancelledTest.cs" />
-    <Compile Include="Functional\IMRU\IMRUBroadcastReduceTest.cs" />
-    <Compile Include="Functional\IMRU\IMRUBroadcastReduceWithFilePartitionDataSetTest.cs" />
-    <Compile Include="Functional\IMRU\IMRUBroadcastReduceWithLocalFile.cs" />
-    <Compile Include="Functional\IMRU\IMRUBrodcastReduceWithoutIMRUClientTest.cs" />
-    <Compile Include="Functional\IMRU\IMRUBrodcastReduceTestBase.cs" />
-    <Compile Include="Functional\IMRU\IMRUCloseTaskTest.cs" />
-    <Compile Include="Functional\IMRU\IMRUMapperCountTest.cs" />
-    <Compile Include="Functional\IMRU\TestExceptionInResultHandlerDispose.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperEvaluatorOnWaitingForEvaluatorAndExecution.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs" />
-    <Compile Include="Functional\IMRU\TestFailUpdateEvaluatorOnWaitingForEvaluator.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperTasksOnDispose.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperEvaluatorsOnDispose.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperEvaluatorsOnInit.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperTasksOnInit.cs" />
-    <Compile Include="Functional\IMRU\TestFailUpdateEvaluator.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperTasks.cs" />
-    <Compile Include="Functional\IMRU\TestFailMapperEvaluators.cs" />
-    <Compile Include="Functional\IMRU\TestTaskExceptions.cs" />
-    <Compile Include="Functional\Messaging\TestContextMessageSourceAndHandler.cs" />
-    <Compile Include="Functional\Messaging\TestMessageEventManager.cs" />
-    <Compile Include="Functional\RuntimeName\EvaluatorRequestingDriverSpecifyingDefaultRuntimeName.cs" />
-    <Compile Include="Functional\RuntimeName\EvaluatorRequestingDriverSpecifyingInvalidRuntimeName.cs" />
-    <Compile Include="Functional\RuntimeName\EvaluatorRequestingDriverSpecifyingRuntimeName.cs" />
-    <Compile Include="Functional\RuntimeName\EvaluatorRequestingDriver.cs" />
-    <Compile Include="Functional\Driver\TestDriver.cs" />
-    <Compile Include="Functional\Messaging\MessageDriver.cs" />
-    <Compile Include="Functional\Messaging\MessageTask.cs" />
-    <Compile Include="Functional\Messaging\TestEvaluatorMessaging.cs" />
-    <Compile Include="Functional\ML\KMeans\TestKMeans.cs" />
-    <Compile Include="Functional\Group\BroadcastReduceTest.cs" />
-    <Compile Include="Functional\Group\PipelinedBroadcastReduceTest.cs" />
-    <Compile Include="Functional\Group\ScatterReduceTest.cs" />
-    <Compile Include="Functional\ReefFunctionalTest.cs" />
-    <Compile Include="Functional\RuntimeName\RuntimeNameTask.cs" />
-    <Compile Include="Functional\RuntimeName\RuntimeNameTest.cs" />
-    <Compile Include="Functional\Bridge\TestDisposeTasks.cs" />
-    <Compile Include="Functional\Telemetry\MetricsDriver.cs" />
-    <Compile Include="Functional\Telemetry\MetricsTask.cs" />
-    <Compile Include="Functional\Telemetry\TestMetricsMessage.cs" />
-    <Compile Include="Functional\TestFramework\TestTestFramework.cs" />
-    <Compile Include="Performance\TestHelloREEF\TestHelloDriver.cs" />
-    <Compile Include="Performance\TestHelloREEF\TestHelloREEFClient.cs" />
-    <Compile Include="Performance\TestHelloREEF\TestHelloTask.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Utility\TestDriverConfigGenerator.cs" />
-    <Compile Include="Utility\TestExceptions.cs" />
-    <Compile Include="Utility\TestOptional.cs" />
-    <Compile Include="Utility\TestPriorityQueue.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples.AllHandlers\Org.Apache.REEF.Examples.AllHandlers.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="$(SolutionDir)\Org.Apache.REEF.Client\run.cmd">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="$(SolutionDir)\App.config">
-      <Link>App.config</Link>
-    </None>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
-      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
-      <Name>Org.Apache.REEF.Common</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
-      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
-      <Name>Org.Apache.REEF.Driver</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
-      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
-      <Name>Org.Apache.REEF.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
-      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
-      <Name>Org.Apache.REEF.Network</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Client\Org.Apache.REEF.Client.csproj">
-      <Project>{5094c35b-4fdb-4322-ac05-45d684501cbf}</Project>
-      <Name>Org.Apache.REEF.Client</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
-      <Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
-      <Name>Org.Apache.REEF.Evaluator</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network.Examples\Org.Apache.REEF.Network.Examples.csproj">
-      <Project>{b1b43b60-ddd0-4805-a9b4-ba84a0ccb7c7}</Project>
-      <Name>Org.Apache.REEF.Network.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples.AllHandlers\Org.Apache.REEF.Examples.AllHandlers.csproj">
-      <Project>{159f7d70-8acc-4d97-9f6d-2fc4ca0d8682}</Project>
-      <Name>Org.Apache.REEF.Examples.AllHandlers</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IMRU.Examples\Org.Apache.REEF.IMRU.Examples.csproj">
-      <Project>{6dc3b04e-2b99-4fda-bd23-2c7864f4c477}</Project>
-      <Name>Org.Apache.REEF.IMRU.Examples</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IMRU\Org.Apache.REEF.IMRU.csproj">
-      <Project>{cc797c57-b465-4d11-98ac-edaaef5899a6}</Project>
-      <Name>Org.Apache.REEF.IMRU</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
-      <Project>{dec0f0a8-dbef-4ebf-b69c-e2369c15abf1}</Project>
-      <Name>Org.Apache.REEF.IO</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.csproj">
-      <Project>{0ff8cee9-b0b6-4a14-9a52-44441be048fe}</Project>
-      <Name>Org.Apache.REEF.Examples.HelloREEF</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Functional\TestFramework\README.md" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.Test.targets" />
 </Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index d4baa01..0000000
--- a/lang/cs/Org.Apache.REEF.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("19ebceb4-3b1f-466b-9127-aa14e636d723")]
diff --git a/lang/cs/Org.Apache.REEF.Tests/packages.config b/lang/cs/Org.Apache.REEF.Tests/packages.config
deleted file mode 100644
index 9df6ffc..0000000
--- a/lang/cs/Org.Apache.REEF.Tests/packages.config
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net45" />
-  <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net452" />
-  <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net452" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net452" />
-  <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net452" />
-  <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net452" />
-  <package id="System.Net.Requests" version="4.0.11" targetFramework="net452" />
-  <package id="System.Reactive.Core" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reactive.Interfaces" version="3.1.1" targetFramework="net451" />
-  <package id="System.Spatial" version="5.8.2" targetFramework="net452" />
-  <package id="WindowsAzure.Storage" version="8.1.1" targetFramework="net452" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.REEF.Utilities.DotNet.csproj b/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.REEF.Utilities.csproj
similarity index 91%
rename from lang/cs/Org.Apache.REEF.Utilities/Org.Apache.REEF.Utilities.DotNet.csproj
rename to lang/cs/Org.Apache.REEF.Utilities/Org.Apache.REEF.Utilities.csproj
index d2a944f..6cd671d 100644
--- a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.REEF.Utilities.DotNet.csproj
+++ b/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.REEF.Utilities.csproj
@@ -20,9 +20,9 @@
     <Description>Common utilities such as logging shared across REEF/Wake/Tang</Description>
     <PackageTags>Apache REEF REEF/Wake/Tang common utilities</PackageTags>
   </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
       <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
   </ItemGroup>
-  <Import Project="..\build.DotNet.targets"/>
+  <Import Project="..\build.targets"/>
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj b/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj
deleted file mode 100644
index 815030b..0000000
--- a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.csproj
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <ProjectGuid>{79E7F89A-1DFB-45E1-8D43-D71A954AEB98}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Utilities</RootNamespace>
-    <AssemblyName>Org.Apache.REEF.Utilities</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-  </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="AsyncUtils\LoggingHelper.cs" />
-    <Compile Include="AsyncUtils\RemoveSynchronizationContextAwaiter.cs" />
-    <Compile Include="AsyncUtils\VoidResult.cs" />
-    <Compile Include="Attributes\BreakingAttribute.cs" />
-    <Compile Include="Attributes\ClientSideAttribute.cs" />
-    <Compile Include="Attributes\DriverSideAttribute.cs" />
-    <Compile Include="Attributes\EvaluatorSideAttribute.cs" />
-    <Compile Include="Attributes\InteropAttribute.cs" />
-    <Compile Include="Attributes\NotThreadSafeAttribute.cs" />
-    <Compile Include="Attributes\TemporaryFixAttribute.cs" />
-    <Compile Include="Attributes\PrivateAttribute.cs" />
-    <Compile Include="Attributes\TaskSideAttribute.cs" />
-    <Compile Include="Attributes\TestingAttribute.cs" />
-    <Compile Include="Attributes\ThreadSafeAttribute.cs" />
-    <Compile Include="Attributes\UnstableAttribute.cs" />
-    <Compile Include="ByteUtilities.cs" />
-    <Compile Include="ClientUtilities.cs" />
-    <Compile Include="Collections\PriorityQueue.cs" />
-    <Compile Include="Collections\ReadOnlySet.cs" />
-    <Compile Include="Diagnostics\DiagnosticsMessages.cs" />
-    <Compile Include="Diagnostics\Exceptions.cs" />
-    <Compile Include="Diagnostics\DefaultUnhandledExceptionHandler.cs" />
-    <Compile Include="IIdentifiable.cs" />
-    <Compile Include="IMessage.cs" />
-    <Compile Include="Logging\JavaLoggingSetting.cs" />
-    <Compile Include="Logging\Level.cs" />
-    <Compile Include="Logging\Logger.cs" />
-    <Compile Include="NetUtilities.cs" />
-    <Compile Include="Optional.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Runtime\Yarn\HttpConfig.cs" />
-    <Compile Include="Runtime\Yarn\YarnConfiguration.cs" />
-    <Compile Include="ValidationUtilities.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.Reef.Utilities.nuspec" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
-</Project>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.nuspec b/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.nuspec
deleted file mode 100644
index 4f74901..0000000
--- a/lang/cs/Org.Apache.REEF.Utilities/Org.Apache.Reef.Utilities.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Utilities</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Utilities</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Common utilities such as logging shared across Reef/Wake/Tang</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>Reef/Wake/Tang common utilities</tags>
-    <dependencies>
-      <dependency id="Microsoft.Hadoop.Avro" version="1.5.6" />
-      <dependency id="Newtonsoft.Json" version="10.0.3" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 515f238..0000000
--- a/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-using System.Runtime.CompilerServices;
-
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Common")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator")]
-
diff --git a/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.cs
index 8a96e10..515f238 100644
--- a/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Utilities/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -14,30 +14,8 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Utilities")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Utilities")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Common")]
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator")]
 
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("a7bda51a-552a-4fba-a834-f715c19454ab")]
-
-// Allow REEF projects to access internals of the Utilities project to prevent
-// exposing unnecessary APIs.
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Common, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Evaluator, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Utilities/packages.config b/lang/cs/Org.Apache.REEF.Utilities/packages.config
deleted file mode 100644
index 0fce481..0000000
--- a/lang/cs/Org.Apache.REEF.Utilities/packages.config
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-</packages>
\ No newline at end of file
diff --git a/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.DotNet.csproj b/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.DotNet.csproj
deleted file mode 100644
index 929de58..0000000
--- a/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.DotNet.csproj
+++ /dev/null
@@ -1,31 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Wake.Tests</AssemblyName>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetTest.props" />
-  <ItemGroup>
-    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNetTest.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.csproj b/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.csproj
index 628ae91..6df9580 100644
--- a/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.csproj
+++ b/lang/cs/Org.Apache.REEF.Wake.Tests/Org.Apache.REEF.Wake.Tests.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,74 +15,17 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{214C64C6-04E5-4867-B69A-E3502EA50871}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Wake.Tests</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Wake.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <RestorePackages>true</RestorePackages>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
-  <Import Project="$(SolutionDir)\xunit.targets" />
-  <PropertyGroup>
-    <BuildPackage>false</BuildPackage>
-  </PropertyGroup>
+  <Import Project="..\build.Test.props" />
   <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Reactive.Core">
-      <HintPath>$(PackagesDir)\System.Reactive.Core.$(SystemReactiveVersion)\lib\net45\System.Reactive.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Reactive.Interfaces">
-      <HintPath>$(PackagesDir)\System.Reactive.Interfaces.$(SystemReactiveVersion)\lib\net45\System.Reactive.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
+    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="Message\AvroTestMessage.cs" />
-    <Compile Include="ProtocolSerializerTest.cs" />
-    <Compile Include="ClockTest.cs" />
-    <Compile Include="MultiCodecTest.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="PubSubSubjectTest.cs" />
-    <Compile Include="RemoteManagerTest.cs" />
-    <Compile Include="StreamingRemoteManagerTest.cs" />
-    <Compile Include="StreamingTransportTest.cs" />
-    <Compile Include="TimerStageTest.cs" />
-    <Compile Include="TimeTest.cs" />
-    <Compile Include="TcpConnectionRetryTest.cs" />
-    <Compile Include="TransportTest.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
-      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
-      <Name>Org.Apache.REEF.Wake</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.Test.targets" />
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Wake.Tests/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Wake.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 0ce705c..0000000
--- a/lang/cs/Org.Apache.REEF.Wake.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Wake.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Wake.Tests")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("68a2ef80-e51b-4abb-9ccc-81354e152758")]
diff --git a/lang/cs/Org.Apache.REEF.Wake.Tests/packages.config b/lang/cs/Org.Apache.REEF.Wake.Tests/packages.config
deleted file mode 100644
index 847e6d5..0000000
--- a/lang/cs/Org.Apache.REEF.Wake.Tests/packages.config
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.Reactive.Core" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reactive.Interfaces" version="3.1.1" targetFramework="net451" />
-  <package id="xunit" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.abstractions" version="2.0.0" targetFramework="net45" />
-  <package id="xunit.assert" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net45" />
-  <package id="xunit.runner.visualstudio" version="2.1.0" targetFramework="net45" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.DotNet.csproj b/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.DotNet.csproj
deleted file mode 100644
index 777d41e..0000000
--- a/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.DotNet.csproj
+++ /dev/null
@@ -1,35 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <PropertyGroup>
-    <AssemblyName>Org.Apache.REEF.Wake</AssemblyName>
-    <Description>Wake is an event-driven framework</Description>
-    <PackageTags>wake event-driven</PackageTags>
-    <DefineConstants>REEF_DOTNET_BUILD</DefineConstants>
-  </PropertyGroup>
-  <Import Project="..\build.DotNetLibrary.props" />
-  <ItemGroup>
-    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
-    <PackageReference Include="EnterpriseLibrary.TransientFaultHandling.Core" Version="$(TransientFaultHandlingVersion)" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
-    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
-  </ItemGroup>
-  <Import Project="..\build.DotNet.targets" />
-</Project>
diff --git a/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.csproj b/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.csproj
index ce171bc..c988cfd 100644
--- a/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.csproj
+++ b/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.csproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,211 +15,21 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
-    <ProjectGuid>{CDFB3464-4041-42B1-9271-83AF24CD5008}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Org.Apache.REEF.Wake</RootNamespace>
     <AssemblyName>Org.Apache.REEF.Wake</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <RestorePackages>true</RestorePackages>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
-    <AvroBinaryDirectory>..\packages\AvroBin</AvroBinaryDirectory>
-    <AvroSchemaDirectory>..\..\common\wake\avro</AvroSchemaDirectory>
-    <AvroTools>..\packages\Microsoft.Avro.Tools.0.1.0\lib\net451\Microsoft.Avro.Tools.exe</AvroTools>
-    <AvroLibrary>..\packages\Microsoft.Avro.Core.0.1.0\lib\net451\Microsoft.Avro.Core.dll</AvroLibrary>
-    <NewtonsoftLibrary>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</NewtonsoftLibrary>
+    <Description>Wake is an event-driven framework</Description>
+    <PackageTags>wake event-driven</PackageTags>
+    <DefineConstants>REEF_DOTNET_BUILD</DefineConstants>
   </PropertyGroup>
-  <Import Project="$(SolutionDir)\build.props" />
+  <Import Project="..\build.Library.props" />
   <ItemGroup>
-    <Reference Include="Microsoft.Hadoop.Avro">
-      <HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.TransientFaultHandling.Core, Version=5.1.1209.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\TransientFaultHandling.Core.5.1.1209.1\lib\NET4\Microsoft.Practices.TransientFaultHandling.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="protobuf-net">
-      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net451\protobuf-net.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Reactive.Core">
-      <HintPath>$(PackagesDir)\System.Reactive.Core.$(SystemReactiveVersion)\lib\net45\System.Reactive.Core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System.Reactive.Interfaces">
-      <HintPath>$(PackagesDir)\System.Reactive.Interfaces.$(SystemReactiveVersion)\lib\net45\System.Reactive.Interfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Xml" />
+    <PackageReference Include="protobuf-net" Version="$(ProtobufVersion)" />
+    <PackageReference Include="EnterpriseLibrary.TransientFaultHandling.Core" Version="$(TransientFaultHandlingVersion)" />
+    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="$(SolutionDir)\SharedAssemblyInfo.cs">
-      <Link>Properties\SharedAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="AbstractEStage.cs" />
-    <Compile Include="Avro\IMessageInstance.cs" />
-    <Compile Include="Avro\MessageInstance.cs" />
-    <Compile Include="Avro\Message\Header.cs" />
-    <Compile Include="Avro\ProtocolSerializer.cs" />
-    <Compile Include="Avro\SeializationException.cs" />
-    <Compile Include="Examples\P2p\IEventSource.cs" />
-    <Compile Include="Examples\P2p\Pull2Push.cs" />
-    <Compile Include="IEStage.cs" />
-    <Compile Include="IEventHandler.cs" />
-    <Compile Include="IIdentifier.cs" />
-    <Compile Include="IIdentifierFactory.cs" />
-    <Compile Include="Remote\IConnectionRetryHandler.cs" />
-    <Compile Include="Remote\Impl\RemoteConnectionRetryHandler.cs" />
-    <Compile Include="Remote\ILocalAddressProvider.cs" />
-    <Compile Include="Remote\Impl\DefaultLocalAddressProvider.cs" />
-    <Compile Include="Remote\Impl\LoopbackLocalAddressProvider.cs" />
-    <Compile Include="Remote\Impl\RemoteEventStreamingCodec.cs" />
-    <Compile Include="Remote\Impl\StreamingRemoteManagerFactory.cs" />
-    <Compile Include="Remote\Impl\DefaultRemoteManagerFactory.cs" />
-    <Compile Include="Impl\LoggingEventHandler.cs" />
-    <Compile Include="Impl\MissingStartHandlerHandler.cs" />
-    <Compile Include="Impl\PeriodicEvent.cs" />
-    <Compile Include="Impl\PubSubEventHandler.cs" />
-    <Compile Include="Impl\SingleThreadStage.cs" />
-    <Compile Include="Impl\SyncStage.cs" />
-    <Compile Include="Impl\ThreadPoolStage.cs" />
-    <Compile Include="Impl\TimerStage.cs" />
-    <Compile Include="IObserverFactory.cs" />
-    <Compile Include="IStage.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Remote\Impl\TcpClientConnectionException.cs" />
-    <Compile Include="Remote\IRemoteObserver.cs" />
-    <Compile Include="Remote\Impl\TcpClientConnectionFactory.cs" />
-    <Compile Include="Remote\ITcpClientConnectionFactory.cs" />
-    <Compile Include="Remote\ITcpPortProvider.cs" />
-    <Compile Include="Remote\Parameters\ConnectionRetryCount.cs" />
-    <Compile Include="Remote\Parameters\SleepTimeInMs.cs" />
-    <Compile Include="Remote\Parameters\TcpPortRangeCount.cs" />
-    <Compile Include="Remote\Parameters\TcpPortRangeSeed.cs" />
-    <Compile Include="Remote\Parameters\TcpPortRangeStart.cs" />
-    <Compile Include="Remote\Parameters\TcpPortRangeTryCount.cs" />
-    <Compile Include="Remote\IDataReader.cs" />
-    <Compile Include="Remote\IDataWriter.cs" />
-    <Compile Include="Remote\Impl\StreamDataReader.cs" />
-    <Compile Include="Remote\Impl\StreamDataWriter.cs" />
-    <Compile Include="Remote\Impl\StreamingRemoteManager.cs" />
-    <Compile Include="Remote\Impl\StreamingLink.cs" />
-    <Compile Include="Remote\Impl\StreamingTransportClient.cs" />
-    <Compile Include="Remote\Impl\StreamingTransportServer.cs" />
-    <Compile Include="Remote\IRemoteManagerFactory.cs" />
-    <Compile Include="Remote\Proto\WakeRemoteProtosGen.cs">
-      <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
-    </Compile>
-    <Compile Include="Remote\ICodec.cs" />
-    <Compile Include="Remote\IDecoder.cs" />
-    <Compile Include="Remote\IEncoder.cs" />
-    <Compile Include="Remote\ILink.cs" />
-    <Compile Include="Remote\Impl\ByteCodec.cs" />
-    <Compile Include="Remote\Impl\Channel.cs" />
-    <Compile Include="Remote\Impl\DefaultRemoteManager.cs" />
-    <Compile Include="Remote\Impl\DefaultRemoteMessage.cs" />
-    <Compile Include="Remote\Impl\IntCodec.cs" />
-    <Compile Include="Remote\Impl\IPEndpointComparer.cs" />
-    <Compile Include="Remote\Impl\Link.cs" />
-    <Compile Include="Remote\Impl\MultiCodec.cs" />
-    <Compile Include="Remote\Impl\MultiDecoder.cs" />
-    <Compile Include="Remote\Impl\MultiEncoder.cs" />
-    <Compile Include="Remote\Impl\ObserverContainer.cs" />
-    <Compile Include="Remote\Impl\RemoteEvent.cs" />
-    <Compile Include="Remote\Impl\RemoteEventCodec.cs" />
-    <Compile Include="Remote\Impl\RemoteEventDecoder.cs" />
-    <Compile Include="Remote\Impl\RemoteEventEncoder.cs" />
-    <Compile Include="Remote\Impl\RemoteEventEndpoint.cs" />
-    <Compile Include="Remote\Impl\SocketRemoteIdentifier.cs" />
-    <Compile Include="Remote\Impl\StringCodec.cs" />
-    <Compile Include="Remote\Impl\StringIdentifier.cs" />
-    <Compile Include="Remote\Impl\StringIdentifierFactory.cs" />
-    <Compile Include="Remote\Impl\TransportClient.cs" />
-    <Compile Include="Remote\Impl\TransportEvent.cs" />
-    <Compile Include="Remote\Impl\TransportServer.cs" />
-    <Compile Include="Remote\IRemoteEvent.cs" />
-    <Compile Include="Remote\IRemoteIdentifier.cs" />
-    <Compile Include="Remote\IRemoteIdentifierFactory.cs" />
-    <Compile Include="Remote\IRemoteManager.cs" />
-    <Compile Include="Remote\IRemoteMessage.cs" />
-    <Compile Include="Remote\ISubscriptionManager.cs" />
-    <Compile Include="Remote\Proto\WakeRemoteProtos.cs" />
-    <Compile Include="Remote\RemoteConfiguration.cs" />
-    <Compile Include="Remote\RemoteRuntimeException.cs" />
-    <Compile Include="Remote\TcpPortProvider.cs" />
-    <Compile Include="RX\AbstractObserver.cs" />
-    <Compile Include="RX\AbstractRxStage.cs" />
-    <Compile Include="RX\Impl\PubSubSubject.cs" />
-    <Compile Include="RX\Impl\RxSyncStage.cs" />
-    <Compile Include="RX\Impl\RxThreadPoolStage.cs" />
-    <Compile Include="RX\Impl\RxTimerStage.cs" />
-    <Compile Include="RX\Impl\SimpleSubject.cs" />
-    <Compile Include="RX\IRxStage.cs" />
-    <Compile Include="RX\IStaticObservable.cs" />
-    <Compile Include="RX\ISubject.cs" />
-    <Compile Include="RX\ObserverCompletedException.cs" />
-    <Compile Include="StreamingCodec\CodecToStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\DoubleArrayStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\DoubleStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\FloatArrayStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\FloatStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\IntArrayStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\IntStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\CommonStreamingCodecs\StringStreamingCodec.cs" />
-    <Compile Include="StreamingCodec\IStreamingCodec.cs" />
-    <Compile Include="Time\Event\Alarm.cs" />
-    <Compile Include="Time\Event\StartTime.cs" />
-    <Compile Include="Time\Event\StopTime.cs" />
-    <Compile Include="Time\IClock.cs" />
-    <Compile Include="Time\Parameters\IdleHandler.cs" />
-    <Compile Include="Time\Parameters\RuntimeStartHandler.cs" />
-    <Compile Include="Time\Parameters\RuntimeStopHandler.cs" />
-    <Compile Include="Time\Parameters\StartHandler.cs" />
-    <Compile Include="Time\Parameters\StopHandler.cs" />
-    <Compile Include="Time\Runtime\Event\ClientAlarm.cs" />
-    <Compile Include="Time\Runtime\Event\IdleClock.cs" />
-    <Compile Include="Time\Runtime\Event\RuntimeAlarm.cs" />
-    <Compile Include="Time\Runtime\Event\RuntimeStart.cs" />
-    <Compile Include="Time\Runtime\Event\RuntimeStop.cs" />
-    <Compile Include="Time\Runtime\ITimer.cs" />
-    <Compile Include="Time\Runtime\LogicalTimer.cs" />
-    <Compile Include="Time\Runtime\RealTimer.cs" />
-    <Compile Include="Time\Runtime\RuntimeClock.cs" />
-    <Compile Include="Time\Time.cs" />
-    <Compile Include="Util\Actionable.cs" />
-    <Compile Include="Util\Disposable.cs" />
-    <Compile Include="Util\FixedThreadPoolTaskService.cs" />
-    <Compile Include="Util\IStartable.cs" />
-    <Compile Include="Util\ITaskService.cs" />
-    <Compile Include="Util\LimitedConcurrencyLevelTaskScheduler.cs" />
-    <Compile Include="Util\NetworkUtils.cs" />
-    <Compile Include="Util\SerializationHelper.cs" />
-    <Compile Include="Util\TimeHelper.cs" />
-    <Compile Include="WakeRuntimeException.cs" />
+    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj" />
+    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="Org.Apache.REEF.Wake.nuspec" />
-    <None Include="packages.config" />
-    <None Include="Remote\Proto\RemoteProtocol.proto" />
-  </ItemGroup>
-  <ItemGroup />
-  <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
-      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
-      <Name>Org.Apache.REEF.Tang</Name>
-    </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
-      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
-      <Name>Org.Apache.REEF.Utilities</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Import Project="$(SolutionDir)\AvroCodeGeneration.Targets" Condition="Exists('$(SolutionDir)\AvroCodeGeneration.Targets')" />
-  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
+  <Import Project="..\build.targets" />
 </Project>
diff --git a/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.nuspec b/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.nuspec
deleted file mode 100644
index f648a5c..0000000
--- a/lang/cs/Org.Apache.REEF.Wake/Org.Apache.REEF.Wake.nuspec
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<package >
-  <metadata>
-    <id>Org.Apache.REEF.Wake</id>
-    <version>$version$</version>
-    <title>Org.Apache.REEF.Wake</title>
-    <authors>The Apache REEF project</authors>
-    <owners>The Apache REEF project</owners>
-    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
-    <projectUrl>http://reef.apache.org/</projectUrl>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
-    <description>Wake is an event driven framework</description>
-    <copyright>The Apache Software Foundation</copyright>
-    <tags>wake event driven</tags>
-    <dependencies>
-      <dependency id="protobuf-net" version="2.1.0" />
-      <dependency id="Rx-Core" version="2.2.5" />
-      <dependency id="TransientFaultHandling.Core" version="5.1.1209.1" />
-      <dependency id="Org.Apache.REEF.Utilities" version="$version$" />
-      <dependency id="Org.Apache.REEF.Tang" version="$version$" />
-    </dependencies>
-  </metadata>
-  <files>
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.dll" target="lib\net45" />
-    <file src="..\bin\$Platform$\$Configuration$\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.pdb" target="lib\net45" />
-  </files>
-</package>
diff --git a/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.DotNet.cs b/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.DotNet.cs
deleted file mode 100644
index 6caaaa2..0000000
--- a/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.DotNet.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using System.Runtime.CompilerServices;
-
-[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.Wake.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.cs b/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.cs
index 199c46b..6caaaa2 100644
--- a/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Wake/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-// Licensed to the Apache Software Foundation (ASF) under one
+// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -15,23 +15,6 @@
 // specific language governing permissions and limitations
 // under the License.
 
-using System.Reflection;
 using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
 
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Org.Apache.REEF.Wake")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyProduct("Org.Apache.REEF.Wake")]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("86a66ac8-0c8e-4652-b533-670e800cb0ea")]
-
-// Allow the tests access to `internal` APIs
-[assembly: InternalsVisibleTo("Org.Apache.REEF.Wake.Tests, publickey=" +
- "00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9" +
- "9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc" +
- "b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17" +
- "618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+[assembly: InternalsVisibleToAttribute("Org.Apache.REEF.Wake.Tests")]
diff --git a/lang/cs/Org.Apache.REEF.Wake/packages.config b/lang/cs/Org.Apache.REEF.Wake/packages.config
deleted file mode 100644
index 6375661..0000000
--- a/lang/cs/Org.Apache.REEF.Wake/packages.config
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<packages>
-  <package id="Microsoft.Avro.Core" version="0.1.0" targetFramework="net451" developmentDependency="true" />
-  <package id="Microsoft.Avro.Tools" version="0.1.0" targetFramework="net451" developmentDependency="true" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" developmentDependency="true" />
-  <package id="Microsoft.Hadoop.Avro" version="1.5.6" targetFramework="net45" />
-  <package id="protobuf-net" version="2.1.0" targetFramework="net45" />
-  <package id="StyleCop.MSBuild" version="5.0.0" targetFramework="net45" developmentDependency="true" />
-  <package id="System.Reactive.Core" version="3.1.1" targetFramework="net451" />
-  <package id="System.Reactive.Interfaces" version="3.1.1" targetFramework="net451" />
-  <package id="TransientFaultHandling.Core" version="5.1.1209.1" targetFramework="net45" />
-</packages>
diff --git a/lang/cs/Org.Apache.REEF.sln b/lang/cs/Org.Apache.REEF.sln
index 95fb5d0..631442c 100644
--- a/lang/cs/Org.Apache.REEF.sln
+++ b/lang/cs/Org.Apache.REEF.sln
Binary files differ
diff --git a/lang/cs/TestRunner.DotNet.proj b/lang/cs/TestRunner.DotNet.proj
deleted file mode 100644
index 5e853fe..0000000
--- a/lang/cs/TestRunner.DotNet.proj
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project=".\build.DotNet.props" />
-  <ItemGroup>
-    <ProjectReferences Include="*\*.Tests.DotNet.csproj" />
-  </ItemGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == '' ">
-    <Configuration>Debug</Configuration>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Platform)' == '' ">
-    <Platform>x64</Platform>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(TargetFramework)' == '' ">
-    <TargetFramework>net461</TargetFramework>
-  </PropertyGroup>
-  <Target Name="Test">
-    <MSBuild Projects="@(ProjectReferences)"
-             Targets="Test" Properties="Configuration=$(Configuration);Platform=$(Platform);TargetFramework=$(TargetFramework)" StopOnFirstFailure="false" />
-  </Target>
-</Project>
diff --git a/lang/cs/TestRunner.proj b/lang/cs/TestRunner.proj
index 0ba9c99..9238bf5 100644
--- a/lang/cs/TestRunner.proj
+++ b/lang/cs/TestRunner.proj
@@ -16,6 +16,7 @@
 under the License.
 -->
 <Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project=".\build.props" />
   <ItemGroup>
     <ProjectReferences Include="*\*.Tests.csproj" />
   </ItemGroup>
@@ -25,8 +26,11 @@
   <PropertyGroup Condition=" '$(Platform)' == '' ">
     <Platform>x64</Platform>
   </PropertyGroup>
+  <PropertyGroup Condition=" '$(TargetFramework)' == '' ">
+    <TargetFramework>net461</TargetFramework>
+  </PropertyGroup>
   <Target Name="Test">
     <MSBuild Projects="@(ProjectReferences)"
-             Targets="Test" Properties="Configuration=$(Configuration);Platform=$(Platform)" StopOnFirstFailure="false" />
+             Targets="Test" Properties="Configuration=$(Configuration);Platform=$(Platform);TargetFramework=$(TargetFramework)" StopOnFirstFailure="false" />
   </Target>
 </Project>
diff --git a/lang/cs/build.DotNetApp.props b/lang/cs/build.App.props
similarity index 97%
rename from lang/cs/build.DotNetApp.props
rename to lang/cs/build.App.props
index 81ff791..952bf66 100644
--- a/lang/cs/build.DotNetApp.props
+++ b/lang/cs/build.App.props
@@ -16,7 +16,7 @@
 under the License.
 -->
 
-<Import Project="build.DotNet.props"/>
+<Import Project="build.props"/>
 
 <!-- Settings for Linux platforms -->
 <PropertyGroup Condition="'$(OS)' != 'Windows_NT'">
diff --git a/lang/cs/build.Common.DotNet.props b/lang/cs/build.Common.props
similarity index 95%
rename from lang/cs/build.Common.DotNet.props
rename to lang/cs/build.Common.props
index 7664c72..520ecbc 100644
--- a/lang/cs/build.Common.DotNet.props
+++ b/lang/cs/build.Common.props
@@ -35,7 +35,7 @@
     <PackageIconUrl>https://reef.apache.org/ApacheREEF_logo_no_margin_small.png</PackageIconUrl>
     <RepositoryUrl>https://github.com/apache/reef.git</RepositoryUrl>
     <PackageReleaseNotes>Contact the Apache REEF development alias dev@reef.apache.org for questions or issues.</PackageReleaseNotes>
-    <DefaultItemExcludes>$(DefaultItemExcludes);**/AssemblyInfo.cs;**/Resources.xml;packages.config;*.nuspec</DefaultItemExcludes>
+    <DefaultItemExcludes>$(DefaultItemExcludes);packages.config;*.nuspec</DefaultItemExcludes>
   </PropertyGroup>
 
   <PropertyGroup>
diff --git a/lang/cs/build.DotNet.props b/lang/cs/build.DotNet.props
deleted file mode 100644
index 0946942..0000000
--- a/lang/cs/build.DotNet.props
+++ /dev/null
@@ -1,37 +0,0 @@
-<Project>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
-  <Import Project="build.Common.DotNet.props" />
-
-  <!-- Allow for C# 7.2 language constructs -->
-  <PropertyGroup>
-    <LangVersion>7.2</LangVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <AvroVersion>0.1.0</AvroVersion>
-    <MicrosoftDataLakeStoreVersion>1.1.3</MicrosoftDataLakeStoreVersion>
-    <NewtonsoftJsonVersion>10.0.3</NewtonsoftJsonVersion>
-    <ProtobufVersion>2.1.0</ProtobufVersion>
-    <SystemReactiveVersion>3.1.1</SystemReactiveVersion>
-    <StyleCopVersion>5.0.0</StyleCopVersion>
-    <TransientFaultHandlingVersion>1.0.0</TransientFaultHandlingVersion>
-    <NSubstituteVersion>3.1.0</NSubstituteVersion>
-    <WindowsAzureStorageVersion>8.1.3</WindowsAzureStorageVersion>
-  </PropertyGroup>
-</Project>
diff --git a/lang/cs/build.DotNet.targets b/lang/cs/build.DotNet.targets
deleted file mode 100644
index 4332f6e..0000000
--- a/lang/cs/build.DotNet.targets
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<Project>
-  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
-</Project>
-
diff --git a/lang/cs/build.DotNetLibrary.props b/lang/cs/build.Library.props
similarity index 95%
rename from lang/cs/build.DotNetLibrary.props
rename to lang/cs/build.Library.props
index 7122375..32be08e 100644
--- a/lang/cs/build.DotNetLibrary.props
+++ b/lang/cs/build.Library.props
@@ -16,7 +16,7 @@
 under the License.
 -->
 
-<Import Project="build.DotNet.props"/>
+<Import Project="build.props"/>
 <PropertyGroup>
   <TargetFrameworks>netstandard2.0</TargetFrameworks>
 </PropertyGroup>
diff --git a/lang/cs/build.DotNetTest.props b/lang/cs/build.Test.props
similarity index 94%
rename from lang/cs/build.DotNetTest.props
rename to lang/cs/build.Test.props
index 444ed1a..f68d2e2 100644
--- a/lang/cs/build.DotNetTest.props
+++ b/lang/cs/build.Test.props
@@ -16,8 +16,8 @@
 under the License.
 -->
 
-<Import Project="build.DotNet.props"/>
-<Import Project="xunit.DotNet.props"/>
+<Import Project="build.props"/>
+<Import Project="xunit.props"/>
 <PropertyGroup>
   <TargetFrameworks>net461</TargetFrameworks>
 
diff --git a/lang/cs/build.DotNetTest.targets b/lang/cs/build.Test.targets
similarity index 95%
rename from lang/cs/build.DotNetTest.targets
rename to lang/cs/build.Test.targets
index 4be3d8c..4fd197f 100644
--- a/lang/cs/build.DotNetTest.targets
+++ b/lang/cs/build.Test.targets
@@ -16,7 +16,7 @@
 under the License.
 -->
 
-<Import Project="build.DotNet.targets"/>
+<Import Project="build.targets"/>
 <Target Name="Test">
   <Exec Command="$(PackagesDir)\xunit.runner.console\2.2.0\tools\xunit.console.exe $(OutputPath)\$(AssemblyName).dll -notrait Environment=Yarn -html $(OutputPath)\xunit_report.html"
     IgnoreStandardErrorWarningFormat="true"/>
diff --git a/lang/cs/build.props b/lang/cs/build.props
index 9cfe502..8eea4b5 100644
--- a/lang/cs/build.props
+++ b/lang/cs/build.props
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<Project>
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -15,74 +15,23 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <!-- Common build paths -->
-  <PropertyGroup>
-    <Prefer32Bit>false</Prefer32Bit>
-    <PlatformTarget>x64</PlatformTarget>
-    <BinDir Condition="$(BinDir) == '' Or $(BinDir) == '*Undefined*'">$(SolutionDir)\bin</BinDir>
-    <PackagesDir Condition="$(PackagesDir) == '' Or $(PackagesDir) == '*Undefined*'">$(SolutionDir)\packages</PackagesDir>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <OutputPath>$(BinDir)\$(Platform)\$(Configuration)\$(RootNamespace)</OutputPath>
-    <BaseIntermediateOutputPath>$(BinDir)\Temp\$(RootNamespace)\$(Platform)\</BaseIntermediateOutputPath>
-    <IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
-    <SignAssembly>true</SignAssembly>
-    <AssemblyOriginatorKeyFile>$(SolutionDir)\keyfile.snk</AssemblyOriginatorKeyFile>
-    <StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
-    <BuildDotPropsIsImported>true</BuildDotPropsIsImported>
-  </PropertyGroup>
-
-  <!-- Common build configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
-    <PlatformTarget>x64</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-    <WarningsNotAsErrors>612,618</WarningsNotAsErrors>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
-    <BuildPackage>true</BuildPackage>
-    <PlatformTarget>x64</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-    <WarningsNotAsErrors>612,618</WarningsNotAsErrors>
-  </PropertyGroup>
+  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+  <Import Project="build.Common.props" />
 
   <!-- Allow for C# 7.2 language constructs -->
   <PropertyGroup>
     <LangVersion>7.2</LangVersion>
   </PropertyGroup>
 
-  <!-- REEF NuGet properties -->
   <PropertyGroup>
-    <IsSnapshot>true</IsSnapshot>
-    <SnapshotNumber>01</SnapshotNumber>
-    <PushPackages>false</PushPackages>
-    <NuGetRepository>https://www.nuget.org</NuGetRepository>
-    <NuGetError>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</NuGetError>
-  </PropertyGroup>
-
-  <!-- Package versions -->
-  <PropertyGroup>
-    <AvroVersion>1.5.6</AvroVersion>
+    <AvroVersion>0.1.0</AvroVersion>
+    <MicrosoftDataLakeStoreVersion>1.1.3</MicrosoftDataLakeStoreVersion>
     <NewtonsoftJsonVersion>10.0.3</NewtonsoftJsonVersion>
     <ProtobufVersion>2.1.0</ProtobufVersion>
     <SystemReactiveVersion>3.1.1</SystemReactiveVersion>
     <StyleCopVersion>5.0.0</StyleCopVersion>
-    <NSubstituteVersion>1.8.2.0</NSubstituteVersion>
-  </PropertyGroup>
-
-  <!-- Locations -->
-  <PropertyGroup>
-    <!--The root directory of the REEF source tree. -->
-    <REEF_Source_Folder>$([System.IO.Path]::GetFullPath($(MSBuildProjectDirectory)\..\..\..))</REEF_Source_Folder>
+    <TransientFaultHandlingVersion>1.0.0</TransientFaultHandlingVersion>
+    <NSubstituteVersion>3.1.0</NSubstituteVersion>
+    <WindowsAzureStorageVersion>8.1.3</WindowsAzureStorageVersion>
   </PropertyGroup>
 </Project>
diff --git a/lang/cs/build.targets b/lang/cs/build.targets
index 4cec084..4332f6e 100644
--- a/lang/cs/build.targets
+++ b/lang/cs/build.targets
@@ -15,56 +15,7 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<Project InitialTargets="ExtractPOMVersion" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <!--
-       ########################################################################
-         Extract the REEF Version from the POM file 
-       ######################################################################## 
-  -->
-  <!--A Task that extracts the version from the pom in a given folder.-->
-  <UsingTask
-    TaskName="GetMavenProjectVersion"
-    TaskFactory="CodeTaskFactory"
-    AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
-    <ParameterGroup>
-      <SnapshotNumber/>
-      <ProjectFolder Required="true"/>
-      <Version Output="true"/>
-      <NugetVersion Output="true"/>
-    </ParameterGroup>
-    <Task>
-      <Reference Include="System.Xml"/>
-      <Reference Include="System.Xml.Linq"/>
-      <Using Namespace="System"/>
-      <Using Namespace="System.IO"/>
-      <Using Namespace="System.Linq"/>
-      <Using Namespace="System.Xml.Linq"/>
-      <Code Type="Fragment" Language="cs">
-        <![CDATA[
-          Version = XDocument.Load(Path.Combine(ProjectFolder, "pom.xml")).Descendants()
-            .Where(x => x.Name.ToString().Contains("version"))
-            .FirstOrDefault().Value;
-          var snapshotNumberAsString = ($(SnapshotNumber) >= 0 && $(SnapshotNumber) <=9) ? "0" + $(SnapshotNumber) : $(SnapshotNumber).ToString();
-          NugetVersion = $(IsSnapshot) ? Version + "-" + snapshotNumberAsString : Version.Replace("-SNAPSHOT","");
-        ]]>
-      </Code>
-    </Task>
-  </UsingTask>
-  <!--
-    A Target that extract the REEF version from the pom and makes it available as REEF_Version
-  -->
-  <Target Name="ExtractPOMVersion">
-    <Message Text="MSBuildProjectName is $(MSBuildProjectName)" />
-    <Message Text="MSBuildProjectDirectory is $(MSBuildProjectDirectory)" />
-    <Message Text="SnapshotNumber is $(SnapshotNumber)" />
-    <Message Text="The root directory of the source tree is $(REEF_Source_Folder)" />
-    <GetMavenProjectVersion SnapshotNumber="$(SnapshotNumber)" ProjectFolder="$(REEF_Source_Folder)">
-      <Output PropertyName="REEF_Version" TaskParameter="Version"/>
-      <Output PropertyName="REEF_NugetVersion" TaskParameter="NugetVersion"/>
-    </GetMavenProjectVersion>
-    <Message Text="Extracted the following version from the POM: $(REEF_Version)"/>
-  </Target>
-  <PropertyGroup>
-    <BuildDotTargetsIsImported>true</BuildDotTargetsIsImported>
-  </PropertyGroup>
+<Project>
+  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
 </Project>
+
diff --git a/lang/cs/pomversion.DotNet.targets b/lang/cs/pomversion.targets
similarity index 100%
rename from lang/cs/pomversion.DotNet.targets
rename to lang/cs/pomversion.targets
diff --git a/lang/cs/xunit.DotNet.props b/lang/cs/xunit.props
similarity index 100%
rename from lang/cs/xunit.DotNet.props
rename to lang/cs/xunit.props
diff --git a/lang/cs/xunit.targets b/lang/cs/xunit.targets
deleted file mode 100644
index f75ef14..0000000
--- a/lang/cs/xunit.targets
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <!-- Properties and targets related to xUnit testing -->
-  <PropertyGroup>
-    <xUnitVersion>2.1.0</xUnitVersion>
-    <xUnitAbstractionsVersion>2.0.0</xUnitAbstractionsVersion>
-  </PropertyGroup>
-  <Import Project="$(PackagesDir)\xunit.runner.visualstudio.$(xUnitVersion)\build\net20\xunit.runner.visualstudio.props" Condition="Exists('$(PackagesDir)\xunit.runner.visualstudio.$(xUnitVersion)\build\net20\xunit.runner.visualstudio.props')" />
-  <Import Project="$(PackagesDir)\xunit.core.$(xUnitVersion)\build\portable-net45+win8+wp8+wpa81\xunit.core.props" Condition="Exists('$(PackagesDir)\xunit.core.$(xUnitVersion)\build\portable-net45+win8+wp8+wpa81\xunit.core.props')" />
-  <ItemGroup>
-    <Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\xunit.abstractions.$(xUnitAbstractionsVersion)\lib\net35\xunit.abstractions.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="xunit.assert, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\xunit.assert.$(xUnitVersion)\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="xunit.core, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\xunit.extensibility.core.$(xUnitVersion)\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="xunit.execution.desktop, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
-      <HintPath>$(PackagesDir)\xunit.extensibility.execution.$(xUnitVersion)\lib\net45\xunit.execution.desktop.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-  </ItemGroup>
-  <Target Name="EnsureNuGetPackageBuildImports_xUnit" BeforeTargets="PrepareForBuild">
-    <Error Condition="!Exists('$(PackagesDir)\xunit.core.$(xUnitVersion)\build\portable-net45+win8+wp8+wpa81\xunit.core.props')" Text="$([System.String]::Format('$(NuGetError)', '$(PackagesDir)\xunit.core.$(xUnitVersion)\build\portable-net45+win8+wp8+wpa81\xunit.core.props'))" />
-    <Error Condition="!Exists('$(PackagesDir)\xunit.runner.visualstudio.$(xUnitVersion)\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(NuGetError)', '$(PackagesDir)\xunit.runner.visualstudio.$(xUnitVersion)\build\net20\xunit.runner.visualstudio.props'))" />
-  </Target>
-  <Target Name="InstallXunitConsoleRunner" BeforeTargets="Test">
-    <Exec Command="$(SolutionDir)\.nuget\nuget.exe restore $(SolutionDir)\.nuget\packages.config -o $(PackagesDir)" />
-  </Target>
-  <Target Name="Test">
-    <Exec Command="$(PackagesDir)\xunit.runner.console.$(xUnitVersion)\tools\xunit.console.exe $(OutputPath)\$(AssemblyName).dll -notrait Environment=Yarn -html $(OutputPath)\xunit_report.html"
-          IgnoreStandardErrorWarningFormat="true"
-      />
-  </Target>
-</Project>
\ No newline at end of file