Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

С#? Легко!


buslikdrev

269 просмотров

 Поделиться

Статья для обладателей Windows

 

Вы спросите: "Зачем нам знать C# (СSharp - "Си Шарп"), если нам интересен PHP и OpenCart?". Отвечаю, что он вам не нужен. Но, хорошо было бы знать, что вы можете в любой момент легко начать писать на нём. А писать можно мобильные приложения, сайты как в php, игры и другие .exe файлы. Для начала программирования на C# даже устанавливать не придётся какие-либо программы, т.к. они у вас наверняка есть по-умолчанию в Windows. Например, в Windows 7 должен быть NET.Framework 2.0 - 3.5.1, который располагается по пути: "C:\Windows\Microsoft.NET\Framework*\v*\". В этих папках вы сможете найти MSBuild.exe - компилятор C# кода.
Чтобы скомпилировать свою первую программу, нужен сам C# (*.cs файл) и настройка проекта (*.csproj файл) для компилятора. Также создать *.CMD файл.

 

NET.Framework и языки к нему можно скачать здесь:

Скрытый текст


Компилятор MSBuild можно скачать здесь:

Скрытый текст

Microsoft Build Tools 2005 v2.0+: C:\Windows\Microsoft.NET\Framework\v2.0.50727

Microsoft Build Tools 2008 v3.5+: C:\Windows\Microsoft.NET\Framework\v3.5

Microsoft Build Tools 2012 v4.8+: C:\Windows\Microsoft.NET\Framework\v4.0.30319
Microsoft Build Tools 2013 v12.0+: https://www.microsoft.com/ru-ru/download/details.aspx?id=40760
Microsoft Build Tools 2015 v14.0+: https://www.microsoft.com/ru-ru/download/details.aspx?id=48159
Microsoft Build Tools 2017 v15.0+: https://learn.microsoft.com/ru-ru/visualstudio/releasenotes/vs2017-relnotes-history#installing-the-earlier-release
Microsoft Build Tools 2019 v16.0+ (Входит в NET.Core v3.1+): https://learn.microsoft.com/ru-ru/visualstudio/releases/2019/history#release-dates-and-build-numbers
Microsoft Build Tools 2022 v17.0+ (Входит в NET.Core v6.0+): https://learn.microsoft.com/ru-ru/visualstudio/releases/2022/release-history#evergreen-bootstrappers

 

 

Приступаем к написанию кода и компиляции.

1. Создаём текстовый файл с кодировкой UTF-8, например, myprogram.cs:

Скрытый текст
namespace MyAPI {
	public class Engine {
		//[System.STAThread] // если однопоточное приложение
		private static void Main(string[] args) {
			// https://learn.microsoft.com/ru-ru/dotnet/api/system.windows.forms.form?view=netframework-4.8
			//Создаём окно
			System.Windows.Forms.Form _form = new System.Windows.Forms.Form();
			//Задаем размер
			_form.Size = new System.Drawing.Size(640, 480);
			//Задаем заголовок окна
			_form.Text = "Моя программа";
			//Создаем текстовое поле
			System.Windows.Forms.RichTextBox richTextBox = new System.Windows.Forms.RichTextBox();
			//Задаем размер поля на всю форму
			richTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
			//Указываем наш текст и перевод строки.
			richTextBox.Text = "Я программист!" + System.Environment.NewLine;
			//Добавляем поле на форму
			_form.Controls.Add(richTextBox);
			//показываем окно
			_form.ShowDialog();
		}
	}
}

 

 

2. Создаём текстовый файл с кодировкой UTF-8, например, myprogram.csproj:

Скрытый текст
<?xml version="1.0" encoding="utf-8"?>
<Project 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>
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
    <AssemblyName>myprogram</AssemblyName>
    <OutputType>WinExe</OutputType>
    <OutputPath>bin\..\</OutputPath>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <!-- <Prefer32Bit>true</Prefer32Bit> -->
    <DebugType>none</DebugType>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="*.cs" />
    <None Include="*.config" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

 

 

3. Создаём текстовый файл с кодировкой UTF-8, например, myprogram.cmd и указать путь к MSBuild:

Скрытый текст
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" myprogram.csproj
PAUSE

 

 

4. Запускаем myprogram.cmd и в папке наших файлов должен появиться исполняемый файл нашей программы myprogram.exe

 

 

Про версии С# можно почитать здесь:
https://learn.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-version-history
https://ru.wikipedia.org/wiki/C_Sharp

 

Про версии NET.Framework можно почитать здесь:

https://learn.microsoft.com/ru-ru/dotnet/framework/migration-guide/versions-and-dependencies

 

Про версии MSBuild можно почитать здесь:
https://en.wikipedia.org/wiki/MSBuild#Versions
Добавлю ещё, что MSBuild есть в dotNET.Core v3.1+ и .csproj билдится (компилируется) такой строкой:
"C:\Program Files\dotnet\dotnet.exe" build myproject.csproj

 

Как компилируется и работает С# код:
https://learn.microsoft.com/ru-ru/dotnet/standard/managed-execution-process
https://ru.wikipedia.org/wiki/Common_Language_Runtime

 

 

Следующая статья по C# будет, если доберусь до создания своего мобильного приложения (открытие сайта, как мобильное приложение). Возможно ещё будет статья, как легко начать программировать на С++.

Если кто вдохновится, то можете изучить своими силами и написать об этом статью.


Создание приложение для Android на C#:
https://metanit.com/sharp/maui/1.1.php
https://learn.microsoft.com/en-us/xamarin/android/deploy-test/building-apps/abi-specific-apks

 

Компиляция приложения на С++ (аналогия, как при компиляции C#):

https://learn.microsoft.com/ru-ru/cpp/build/walkthrough-using-msbuild-to-create-a-visual-cpp-project?view=msvc-170

Изменено пользователем buslikdrev

  • +1 1
 Поделиться

4 комментария


Рекомендованные комментарии

Ещё способ скомпилировать код без создания .csproj

 

Что на счёт Андройд, то устанавливайте Microsoft Build Tools 2017 v15.0+ c этой версии появилась возможность компилировать под Android 7+ и iOS 11+. Для более старых версий нужно думать и копать в сторону Xamarin.

 

  • +1 1
Ссылка на комментарий

Раз появилась такая тема, то может кто знает. Можно ли как то на хостинге объеденить PHP и EXE файлы для совместнной работы, что бы уйти от ioncube?

 

т.е. какие то функции выносить в .exe файлы

Ссылка на комментарий
21.12.2022 в 02:14, cherkas сказал:

Раз появилась такая тема, то может кто знает. Можно ли как то на хостинге объеденить PHP и EXE файлы для совместнной работы, что бы уйти от ioncube?

 

т.е. какие то функции выносить в .exe файлы

 

Думаю можно. .exe, .dll если хостинг на windows, linux вроде .so

Но сначала перед изучением написания такой программы, нужно изучить запуск готовых через какой-нибудь exec()

Нужно учитывать ещё, что на виндоус хостинге будет .NET Framework 3,5-4,0 - ориентироваться нужно на С# 3-4.

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.