VS 2013 Update 4, VS 2015 Preview, VS Community Editions : A lot of great news

wpid-Featured_Picture118-620x598

VS 2013 Update 4 and VS 2015 preview are available

What does it means ?

For the Tools

There is an android emulator !

Appache Cordova, Xamarin, Improvements to Blend, …

http://blogs.msdn.com/b/visualstudio/archive/2014/11/12/visual-studio-2015-preview-visual-studio-community-2013-visual-studio-2013-update-4-and-more.aspx

For .NET Framework

Core Framework is Open source and on Linux and OSX

https://github.com/dotnet/corefx

http://weblogs.asp.net/scottgu/announcing-open-source-of-net-core-framework-net-core-distribution-for-linux-osx-and-free-visual-studio-community-edition

.NET Foundation, RyuJIT, .NET CORE 5, .NET FX 4.6, C# 6, WPF, Reference source, NuGet, …

http://blogs.msdn.com/b/dotnet/archive/2014/11/12/announcing-net-2015-preview-a-new-era-for-net.aspx

.NET Foundation : new projects

http://www.dotnetfoundation.org/blog/announcing-new-governance-model-and-project-contributions-to-the-net-foundation

For ASP.NET

ASP.NET will work on Linux and OSX (and on Windows of course)

http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview

An improved package manager for each project

Use of Roslyn

http://blogs.msdn.com/b/webdev/archive/2014/11/12/announcing-asp-net-features-in-visual-studio-2015-preview-and-vs2013-update-4.aspx

For Entity Framework

EF6.1.2 (Beta) and EF 7 (Preview):

http://blogs.msdn.com/b/adonet/archive/2014/11/12/visual-studio-2015-preview-and-entity-framework.aspx

Visual Studio Community

http://www.visualstudio.com/en-us/products/visual-studio-community-vs

It’s like the express editions but it’s not !
-> you can use plugins
-> it’s not platform specific : you can use this IDE to create ASP.NET or Winforms, as you want

More

http://www.hanselman.com/blog/PermaLink.aspx?guid=a1efdb27-1795-43a6-8d13-1f38f2b88eb6

http://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx

http://blogs.msdn.com/b/visualstudio/archive/2014/11/12/visual-studio-2015-preview-visual-studio-community-2013-visual-studio-2013-update-4-and-more.aspx

Incoming search terms:

  • vs 2015 community
  • VS 2015 community edition
  • vs community 2015
  • vs update 4
  • vs2015 vs vs2013
  • vs2015 community
  • vs2013 vs vs2015
  • VS 2015 update 4
  • vs 2015 update
  • vs 2015 preview

How to instantiate PrivateType of nested class

The PrivateType class is very handy when it comes to run unit tests on methods that are either private, either in an internal class.

The constructor signature is:


public PrivateType(
	string assemblyName,
	string typeName
)

You use it this way:


PrivateType t = new PrivateType("Myassembly", "Myassembly.MyNamespaces.MyInternalClass");

MyType result = t.InvokeStatic("MyMethod") as MyType ; // MyType  can be any object type

But when you are in the specific case of testing a method from an nested class of an internal class, there is a little trick

The TypeName argument of the PrivateType’s constructor is not (as we could imagine) “Myassembly.MyNamespaces.MyInternalClass.MyInnerClass” but “Myassembly.MyNamespaces.MyInternalClass+MyInnerClass” (notice the “+”)

So :


PrivateType t = new PrivateType("Myassembly", "Myassembly.MyNamespaces.MyInternalClass+MyInnerClass");

MyType result = t.InvokeStatic("MyMethod") as MyType ; // MyType  can be any object type

Help found thanks to :https://stackoverflow.com/questions/3200875/how-to-instantiate-privatetype-of-inner-private-class/22700890#22700890

Incoming search terms:

  • Nested Leave a Reply comment -captcha
  • privatetype private class
  • unity instantiate nested class

ASP.NET vNext

A few resources about ASP.NET vNext

Intro by Scott Hanselman : http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx

Intro by David Fowler : http://davidfowl.com/asp-net-vnext/

  • A better platform for building web applications with .NET
  • Things we wanted to fix
  • System.Web

Overview by David Fowler : http://davidfowl.com/asp-net-vnext-architecture/

Intro by Jeff Fritz: http://developer.telerik.com/featured/microsofts-special-k-an-introduction-to-asp-net-vnext/

  • Introducing OWIN
  • MVC – Meet WebAPI, WebAPI meet MVC
  • Bye Bye System.Web
  • Blistering Performance
  • Where is web.config?
  • Welcome Project.JSON!

Videos :

Scott Hanselman and Scott Hunter : INTRODUCING: The Future of .NET on the Server

David Fowler and Scott Hanselman : DEEP DIVE: The Future of .NET on the Server

 

Source code :

Asp.Net vNext is open source and can be found on github : https://github.com/aspnet

The current version of ASP.NET is still on codeplex : http://aspnetwebstack.codeplex.com/

Incoming search terms:

  • asp net vnext ahref
  • oct vnext mvc
  • asp net vnext
  • asp net vnext grid
  • kendo ui vnext
  • vnext kendo
  • aspvnext upload
  • asp net vnext web config
  • asp net vnext how to instantiate class
  • asp net vnext deepdive

Know your .NET Framework Episode 2 : getting a range of integers

If you need a list of integers filled with all numbers in a specific range, you will often do this :

List<int> range = new List<int>();
for (int i = rangeStart; i < RangeEnd; i++)
{
   range.Add(i);
}

or you will write a method

public IEnumerable<int> GetRange(int start, int end)
{
  for (int i = start; i < end; i++)
  {
    yield return i;
  }
}

and call it:

List<int> range = GetRange(0, 10).ToList();

Good news : this method already exists in the framework !

You can find it in the System.Linq namespace : it’s the Enumerable.Range static method, and it’s available since framework 3.5.

This method returns an IEnumerable<int>, you can use it like this, or convert it to an array or a list.
to use it :
List<int> range = new List<int>(Enumerable.Range(0, 10));
or
List<int> range = Enumerable.Range(0, 10)).ToList();

Remark

Note that the first parameter is the start, but the second is not the end ! it’s a count !, so if you want to use it by specifying a start and an end you will have to do this :

int start = 5;
int end = 50;
List<int> range = Enumerable.Range(start, (end-start)+1)).ToList();

It’s handy to reduce the code size when you want to fill a dropdown or other things that requires a range of integers.

Know your .NET Framework Episode 1 : joining strings

Too often we see developers re-inventing the wheel, so I’d like to try to make a round-up of the common methods people don’t use enough

I’m not saying I’ never made the same mistakes, but I’m going to try to group them to avoid you (and me) to do them again

First example : how to properly join a list of strings (jump to the conclusion if you want the direct answer)

imagine you have a list of strings :


IEnumerable<string> mylist = new[] { "dog", "cat", "turtle", "bird", "fish" };

and as a result you would like

dog, cat, turtle, bird, fish

so joining all items by a comma followed by a blank space

what devs usually do is :


string result = "";
foreach(string item in mylist) // joining all items
{
  result += item + ", ";
}

which will result in

dog, cat, turtle, bird, fish,

so they will remove the trailing “, ”


string result = "";
foreach(string item in mylist) // joining all items
{
  result += item + ", ";
}

result =result.TrimEnd(new char[] { ',', ' ' });

// or result =  result.Remove(result.LastIndexOf(", "), 2);
// or another method

this will give the wanted “dog, cat, turtle, bird, fish”

Another way to go is

 List<string> mylist = new List<string>(new []{ "dog", "cat", "turtle", "bird", "fish" });
 string result = "";
 for (int i = 0; i < mylist.Count; i++)
 {
   if (i != 0)
   {
      result += ", ";
   }
   result += mylist[i];
}

This will work as well

But there is a method that was there for ever (I mean since the first version of the framework)

This is a static method of the String class: the Join method.

It has several signatures, but basically it takes the separator you want as the first parameter, and a collection of string or object as second parameter.

If you want to see how it’s implemented : check the method in the framework source reference

Conclusion

You can really shorten you code by using this method

string result = String.Join(", ",mylist);

Bonus

Of course you don’t have to limit yourself to a comma as a separator, here is an example to create an html unordered list:

List<string> mylist = new List<string>(new []{ "dog", "cat", "turtle", "bird", "fish" });

// step 1 :create the inner "li"
string listItems = string.Join("</li><li>", mylist);

// step 2 : complete the first and last "li" and surround by an "ul"
string result = string.Format("<ul><li>{0}</li></ul>",listItems);

output :

<ul><li>dog</li><li>cat</li><li>turtle</li><li>bird</li><li>fish</li></ul>

or :

  • dog
  • cat
  • turtle
  • bird
  • fish

Incoming search terms:

  • 1 know net