چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
تا حالا شده برنامه ای تحت ویندوز نوشته باشین و بخواین که این برنامه بدون هیچ گونه تغییری در اون به همون شکل داخل بروزر های مختلف نمایش داده شود؟
در این صورت شما قادر خواهین بود که برنامه نوشته شده خودتون رو به صورت سایت در بیارین و به این صورت نمایش بدین با داشتن کمترین دانش برنامه نویسی در مورد وب نویسی
برای شروع یک برنامه WinForm ساده پیاده سازی کنین و بعد از تست عملکردش وقتی مطمئن شدین که برنامه به طور کامل کار میکنه کار اصلی ما شروع میشه.
بعد از ایجاد برنامه وارد صفحه تنظیمات پروژه خودتون توی ویژوال استودیو بشین و Output Type رو روی ClassLibrary قرار بدین و از برنامه کامپایل بگیرین. در این صورت کل برنامه نوشته شده شما به صورت فایل کتابخانه ای آماده میشه
قدم بعدی کار اصلی ما رو شامل میشه. برای این منظور از VS یک پروژه جدید از نوع Wpf Browser Application ایجاد کنین. داخل Solution Explorer روی References کلیک راست کنین و گزینه Add reference رو انتخاب کنین و فایل کتابخانه ای ساخته شده در مرحله قبل رو به این پروژه اضافه کنین. بعد از اضافه کردن فایل قبلی نیاز داریم تا 2 فایل کتابخانه ای زیر رو هم اضافه کنیم :
Windows Forms Integration و System Windows Forms
خوب حالا نوبت کار اصلی ما میرسه و اون آماده سازی فرم نمایشی هستش. اینجا برای سادگی کار از StackPanel استفاده میکنیم که نمونه کدش میشه مسه زیر(البته این کد رو باید توی فرم اصلی مربوط به این پروژه قرار بدیم)
<Grid>
<StackPanel Margin="0,0,0,0" Name="stackPanel"
HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
خوب در قدم بعدی باید بریم توی قسمت کد زنی معمولی
من اینجا فقط کد ها رو میزارم چون بقیش خیلی سادس:
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using WinFormProject;
namespace NewProject1
{
public partial class Page1 : Page
{
private readonly MainForm mainForm = new MainForm();//این شی از فایل WinFormProject ایجاد شده است
public Page1()
{
InitializeComponent();
//Create a Windows Forms Host to host a form
WindowsFormsHost windowsFormsHost = new WindowsFormsHost();
stackPanel.Width = mainForm.Width;
stackPanel.Height = mainForm.Height;
windowsFormsHost.Width = mainForm.Width;
windowsFormsHost.Height = mainForm.Height;
mainForm.TopLevel = false;
windowsFormsHost.Child = mainForm;
stackPanel.Children.Add(windowsFormsHost);
}
}
}
و اما آخرین قدم در اجرای این کار ها:
وارد Properties مربوط به پروژه جدید میشیم و میریم توی تب Security و اونجا گزینه This is a full trust application رو انتخاب میکنیم .
حالا فقط کافیه از پروژه یک ران بگیرین و ببینین به چه سادگی برنامه ای که تحت ویندوز نوشته بودین حالا تحت وب اجرا میشه. برای انتقال هم کافیه یه هاست ویندوز بگیرین و تنظیمات رو روی اون انجام بدین و برنامه قابل اجرا روی وب....
با تشکر از راسخون
امیدوارم به کارتون بیاد
نقل قول: آموزش : چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
سلام...کسی امتحان کرده ببینه کار می کنه یا نه؟؟من که موفق نشدم
نقل قول: آموزش : چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
منم تست کردم ولی موفق به اجرای درست نشدم
1 ضمیمه
نقل قول: آموزش : چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
من تست کردم ، مشکلی نداشت
برنامه معمولی نبود
یه برنامه با 4 فرم و اتصال به SQLServer که دیتابیس از روی سیستم دیگه میخوند
کجاش مشکل داشتید ؟
نمونه اجرا روی کروم ....
ضمیمه 135024
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
دوست خوب در Visual Studio 2015 چطوری ایجاد کنیم؟
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
2015 تست نزدم ، بنده با 2013 تست زدم اوکی بود
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
کارهایی که انجام شده منطقی میاد و قاعدتا کار خواهد کرد ولی هدف از اینکار چیست؟ آیا این پروژه را در وب سرور بگذاریم کار خواهد کرد؟
چون در پروژه های asp .net میتوان با اضافه کردن reference مربوط به system.windows.forms میتوان از ابزارهای windows form مانند message box و کامپوننتها و ابزارهای فرمهای ویندوز میتوان استفاده کرد و پروژه وب در حالت لوکلا بدون مشکل کار خواهد کرد ولی وقتی بروی یک وب سرور آپلود کنیم بخشهای ویندوز فرم کار نمیکنند!
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
سلام
بنده روی هاست تست کردم جواب نمیده. روی کلاینت خوب جواب میده.
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
متاسفانه بنده هاست ویندوزی ندارم تست بزنم ، ولی لوکال مشکلی نداشت , عکس نمونه هم گذاشتم ...
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
میشه لطف کنید یه پروژه تست با یه فرم ساده بزارین؟
1 ضمیمه
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
اینم عکس از برنامه ساده !
ضمیمه 135096
اینم سورس نمونه
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using System.Windows.Forms;
namespace WpfBrowserApplication1
{
/// <summary>
/// Interaction logic for Page1.xaml
/// </summary>
public partial class Page1 : Page
{
//private readonly MainForm mainForm = new MainForm();//این شی از فایل WinFormProject ایجاد شده است
//private readonly ESECo_Manager.frmLogin MainForm = new ESECo_Manager.frmLogin();
private readonly WindowsFormsApplication1.Form1 frm = new WindowsFormsApplication1.Form1();
public Page1()
{
InitializeComponent();
//Create a Windows Forms Host to host a form
WindowsFormsHost windowsFormsHost = new WindowsFormsHost();
stackPanel.Width = frm.Width;
stackPanel.Height = frm.Height;
windowsFormsHost.Width = frm.Width;
windowsFormsHost.Height = frm.Height;
frm.TopLevel = false;
windowsFormsHost.Child = frm;
stackPanel.Children.Add(windowsFormsHost);
}
}
}
این هم قسمت XAML
<Page x:Class="WpfBrowserApplication1.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="Page1">
<Grid>
<StackPanel Margin="0,0,0,0" Name="stackPanel"
HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
</Page>
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
چه جالب...اجرا نشد
وقتی اجرا می کنم مرورگرم اجرا میشه می خواد یه فایل رو دانلود کنه که همون فایل برنامس!!!
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
نقل قول:
نوشته شده توسط
rezafatehy
چه جالب...اجرا نشد
وقتی اجرا می کنم مرورگرم اجرا میشه می خواد یه فایل رو دانلود کنه که همون فایل برنامس!!!
حتما مرورگر شما تو لود مشکل دااره که بصورت دانلود فایل رو بهتون میده ، چون دوستان دیگه هم اجرا گرفتن ....
مطمئنی تمام مراحل رو درست انجام دادی ؟ یه چک دیگه بکن بنظرم
نقل قول: چگونه پروژه ویندوز فرم خود را در وب بروزر و روی سرور ویندوزی اجرا بگیریم !!!
دوستان خروجی رو با Internet explorer بگیرید. با سایر مرورگرها میره به حالت دانلود