Собственно, нашел такую интересную штуковину, называется Grasshopper. Интегрируется со студией VS 2008. Автоматически делает из .Net приложений Java приложения (на уровне MSID->байт-код Java). Поддерживает только Library, Console Application и ASP.Net приложения (WinForm не поддерживает).
Создал простое ASP.Net приложение и эта хрень его перевела в Java-версию. Все MS-овские .Net библиотеки стали jar-файлами. Самое удивительное -- прекрасно работает и мало чем отличается от обычного ASP.Net приложения (в простейшем случае).
А целью моей было запустить ЭТО на Google App Engine. Но, к сожалению, пока не понятно как это сделать. Локально это Java-приложение у меня работает на сервере tomcat (Grasshopper сам установил сервер и сам все настроил). Попытался просто создать в Eclipse WebProject для GAE и тупо скопировать файлы -- не пошло (Server Error 500, чего-то там с секьюрити). Оно еще создает .war-файл. Открыл его Eclips-ом (импорт), попытался запустить -- он начал спрашивать какой сервер использовать (собственно я не знаю какой сервер использует GAE).
Кому интересна эта тема и кто хочет присоединиться к исследованиям?
Важно оно вот почему: тарифа GAE в 100 раз меньше тарифов Azure. Т.к. MS не может составить достойную конкуренцию Google а мы много лет потратили на технологии от MS -- нужно искать альтернативы.
Здравствуйте, 0K, Вы писали:
0K>А целью моей было запустить ЭТО на Google App Engine. Но, к сожалению, пока не понятно как это сделать. Локально это Java-приложение у меня работает на сервере tomcat (Grasshopper сам установил сервер и сам все настроил). Попытался просто создать в Eclipse WebProject для GAE и тупо скопировать файлы -- не пошло (Server Error 500, чего-то там с секьюрити). Оно еще создает .war-файл. Открыл его Eclips-ом (импорт), попытался запустить -- он начал спрашивать какой сервер использовать (собственно я не знаю какой сервер использует GAE).
Хотел просто пустое Web-приложение запустить для начала.
K>Т.е. в курсе что там sql базу например пока только обещают?
Можно и их существующую базу использовать. Grasshopper позволяет подключать ссылки на jar.
K>Слабо представляю зачем вам GAE если собственно с инфраструктурой GAE вы работать не будете(ну из .NET точно не сможете)...
Можно. С помощью Grasshopper можно подключать ссылки на Jar, писать на C# и оно будет компилироваться в Java. Сначала в MSIL, потом в Java.
Вобщем из-за этих ограничений не запускается много чего явовского. Так что возможно что и в вашем случае также (если конечно вы правильно всё собрали).
K>>Т.е. в курсе что там sql базу например пока только обещают?
0K>Можно и их существующую базу использовать. Grasshopper позволяет подключать ссылки на jar.
K>>Слабо представляю зачем вам GAE если собственно с инфраструктурой GAE вы работать не будете(ну из .NET точно не сможете)...
0K>Можно. С помощью Grasshopper можно подключать ссылки на Jar, писать на C# и оно будет компилироваться в Java. Сначала в MSIL, потом в Java.
Я ASP.Net приложений никогда не писал, но когда-то давно(в 2004 вроде году) писал на C# немного для десктопа. Из того что я помню, то сконвертить руками из C# в Java не должно быть совсем уж большой проблемой. Конечно где-то возможно потеряем в красивостях и код придётся переписать "тупо и прямо", но это лучше чем зависеть от непонятного конвертера. Я уж неговорю о невозможности использовать например JDO (правда там всё не фонтан с производительностью пока, но для среднестатистического приложения вполне нормально и сильно облегчает создание прототипа например). Ну и когда что-то будет работать неожиданно или неправильно — всегда будет мучать сомнение, а не из-за конвертера ли это... Вобщем если выбирать GAE, то лично я считаю то сконвертить проект на Java самому это наиболее правильное решение.
А кроме Азура нету облаков на которых можно запустить ASP.Net?
Здравствуйте, kinoman, Вы писали:
K>Я ASP.Net приложений никогда не писал, но когда-то давно(в 2004 вроде году) писал на C# немного для десктопа. Из того что я помню, то сконвертить руками из C# в Java не должно быть совсем уж большой проблемой. ... Вобщем если выбирать GAE, то лично я считаю то сконвертить проект на Java самому это наиболее правильное решение.
(если тупо заменить все uint на int и ulong на long). Во-вторых, когда используете системные классы -- нужно искать в документации Java чем их заменить (к примеру для записи файлов или обращения к сетевому ресурсу).
K>А кроме Азура нету облаков на которых можно запустить ASP.Net?
Есть еще Amazon EC2. Но все они берут деньги за машинное время, а не за процессорное (как Google). У меня есть два простеньких сайта на GAE. Уже пол года работают -- проблем не было и ни копейки не заплатил. Если бы использовал Azure -- это бы стоило уже 500 у.е.
Здравствуйте, 0K, Вы писали:
0K>Здравствуйте, kinoman, Вы писали:
K>>Я ASP.Net приложений никогда не писал, но когда-то давно(в 2004 вроде году) писал на C# немного для десктопа. Из того что я помню, то сконвертить руками из C# в Java не должно быть совсем уж большой проблемой. ... Вобщем если выбирать GAE, то лично я считаю то сконвертить проект на Java самому это наиболее правильное решение.
0K>Конвертировать руками -- занимает много времени. Во-первых, барахлят такие инструкции с целыми числами: http://rsdn.ru/forum/dotnet/3888792.flat.aspx
(если тупо заменить все uint на int и ulong на long). Во-вторых, когда используете системные классы -- нужно искать в документации Java чем их заменить (к примеру для записи файлов или обращения к сетевому ресурсу).
Ну зависит конечно от объёма. Если сотни тысяч строк, то наверное да — много времени уйдёт. Java был первый язык по которому я начал читать какие-то книжки уже после написания нескольких приложений. Никаких проблем чтобы найти то что нужно не было. Собственно весь базис который нужен есть здесь наверное: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/index.html .
Ну что-то совсем гладко не сконвертится понятное дело. Но без посредника в виде конвертера это по крайней мере легко доработать руками.
K>>А кроме Азура нету облаков на которых можно запустить ASP.Net?
0K>Есть еще Amazon EC2. Но все они берут деньги за машинное время, а не за процессорное (как Google). У меня есть два простеньких сайта на GAE. Уже пол года работают -- проблем не было и ни копейки не заплатил. Если бы использовал Azure -- это бы стоило уже 500 у.е.
Понятно. Ну у меня есть больше чем два простеньких сайта на GAE, и под нагрузкой там приходится очень сильно сражаться оптимизируя и вылизывая всё. Как бы я это делал работая с конвертером — не представляю. Точнее представляю примерно, но процесс был бы раз в 10 медленнее.
Вобщем лично я без понятия как у вас там работает ASP.Net, но на выходе конвертера наверное должно получится что-то с сервлетами. У вас web.xml файл есть там на выходе? Куда-нибудь выложить можете его?
Здравствуйте, kinoman, Вы писали:
K>Вобщем лично я без понятия как у вас там работает ASP.Net, но на выходе конвертера наверное должно получится что-то с сервлетами. У вас web.xml файл есть там на выходе? Куда-нибудь выложить можете его?
Да, есть там Web.xml. Проект у меня на другом компе, он отключен. Напишу по памяти.
В Web.xml, насколько я понял, определен обработчик запросов. Определены все расширения серверных страниц и кто какое расширение обрабатывает (все что используется в ASP.Net: aspx, ashx, asmx...). Кроме того, в папке libs около 22 МБт разных .jar файлов -- все нужные библиотеки .Net в java вариенте (как я не пытался уменьшить их количество -- не получилось).
Здравствуйте, 0K, Вы писали:
0K>Здравствуйте, kinoman, Вы писали:
K>>Вобщем лично я без понятия как у вас там работает ASP.Net, но на выходе конвертера наверное должно получится что-то с сервлетами. У вас web.xml файл есть там на выходе? Куда-нибудь выложить можете его?
0K>Да, есть там Web.xml. Проект у меня на другом компе, он отключен. Напишу по памяти.
0K>В Web.xml, насколько я понял, определен обработчик запросов. Определены все расширения серверных страниц и кто какое расширение обрабатывает (все что используется в ASP.Net: aspx, ashx, asmx...). Кроме того, в папке libs около 22 МБт разных .jar файлов -- все нужные библиотеки .Net в java вариенте (как я не пытался уменьшить их количество -- не получилось).
Ну вобщем надо слить этот web.xml с дефолным из gae(хотя я не помню прописано ли там вообще чего-нибудь полезное — но может и прописано). И закинуть то что в папке libs в папку war/WEB-INF/lib . И желательно описать подробнее ошибку "(Server Error 500, чего-то там с секьюрити)" если она повторится.