Skip to main content

Running dotnet on Linux

Server: Linux, version SUSE 12

To run dotnet code on Linux, the first and foremost task is to "Install Mono package on linux".

Note: Mono is an open implementation of Microsoft's .Net framework, including compilers. It uses the same development libraries on Linux which are being used on Windows. Therefore, if you code and compiled some mono code on Linux,  it will work for Windows as well.

      zypper is a package installation tool which is used in this scenario. If zypper is not available, check which package manager tool is installed on server. Furthermore, to verify if zypper is installed or not, type zypper on command line which will show all options if zypper is available on server else it will show 'command not found'.

zypper ar -r http://download.opensuse.org/repositories/Mono/SLE_11_SP2/Mono.repo

The above command will download from mentioned URL in a new repository. Here 'ar' stands for 'add repo'.

After adding it to repository, type 'zypper refresh' command, it will ask to install packages. Type the appropriate option and install the Mono packages.


Once successful installation,       we are all set to run dotnet on linux server.

Running first dotnet code

Create a new test.cs file by typing following command.

$cat>test.cs

Now open the file using any available editor. In this case it is 'vi' editor.

vi test.cs

Starting writing the first dotnet code as shown below.

      Information about 'vi' editor:
  • Type 'i' to change it to insert mode.
  • Type 'esc' to come out of insert mode.
  • Type ':w' to write the file and save.
  • Type ':q' to quit and come back to command line tool.

       NOTE: If any exception appears like '!' is required to override the file. Type ":w!" to override the existing file and write the new text. OR Type ":q!" to override the existing file with new text and quit.

C# code for 'test.cs':
using System;
namespace Test1
{
class Test1
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!!");
}
}
}

Once you have saved the file, its time to compile it. 'mcs' is command which is used for compiling the code.

dev-server-linux-suse12:~ # mcs test.cs

After compilation is successfully completed, its time to run the application. As it is console project, '.exe' file will be created as output. 'mono' is the command used for running the test project.

dev-server-linux-suse12:~ # mono test.exe
Hello World!!

You are all set to run dotnet on Linux. Provide your valuable comments/suggestions.

Popular posts from this blog

Cannot alter the login 'sa', because it does not exist or you do not have permission.

Working on projects, it can happen that 'sa' account gets locked. If it is on local machine OR development boxes, onus would be on you to fix it. If scripts and SQL steps are not working, this might help you fixing the issue.

Steps to unlock 'sa' account and resetting the password.

1. Open SQL Server Configuration Manager

2. Select SQL Server Services -> 'SQL Server' service.
3. Right click on 'SQL Server' service and click on "Startup Parameters". For 2008, server "Startup Parameters" are inside Advanced tab.


4. Add '-m' in startup parameters as shown above and click on 'Add'. This will put SQL server into 'Single User Mode' and local admin will have 'Super User' rights. For 2008, server you have to add ':-m' in the last of the existing query.
5. Save the settings and Restart the service.
6. Now open the SQL Server Management Studio and connect to database using 'Windows Authentication&…

Could not load file or assembly 'Microsoft.Web.Infrastructure'

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.



What 'Micorosoft.Web.Infrastructure' does? This dll lets HTTP modules register at run time.
Solution to above problem: Copy 'Micorosoft.Web.Infrastructure' dll in bin folder of your project and this problem should be resolved. If you have .Net framework installed on machine, this dll should be present on it. You can search for this dll and copy it in your active project folder.  
Alternatively,  you can install this dll using nuget package manager PM> Install-Package Microsoft.Web.Infrastructure -Version 1.0.0
Happy coding!!

Sitecore - Moving items from web to master

In most of the cases, generally you create items in master database and publish to web/production data. However, sometimes few items are in web database and not in master. Reason can be anything, like you might have deleted it in master but did not publish the parent item or due to some other reason.

If you are thinking, you will create package from web and deploy it in master, that will not work. :-) When you create package from master, it installs the items in master only and same is the case with web.

Right and easy way to do is Transfer the item. Yes, you read it right. There is a provision in Sitecore to transfer the items from one database to another.

Select the item which you want to transfer from one database to another. Right click on it and then select Copying. Click on Transfer. see screenshot



Once you click on Transfer, it opens up a popup box. Click 'Next'. see screenshot

After clicking on next, you have to choose the database where you would like to transfer the…