মনো কি প্রাইম টাইমের জন্য প্রস্তুত? [বন্ধ]


314

বড় বা মাঝারি আকারের প্রকল্পে ওপেন সোর্স .NET বাস্তবায়ন কেউ কি মনো ব্যবহার করেছে? আমি ভাবছি এটি বাস্তব বিশ্বের জন্য, উত্পাদন পরিবেশের জন্য প্রস্তুত কিনা। এটি কি স্থিতিশীল, দ্রুত, সামঞ্জস্যপূর্ণ, ... ব্যবহারের জন্য যথেষ্ট? এটা মনো রানটাইম পোর্ট প্রকল্পে প্রচেষ্টার অনেক সময় লাগবে, অথবা এটি সত্যিই, তাই সত্যিই শুধু গ্রহণ করা এবং Microsoft এর রানটাইম জন্য ইতিমধ্যে লিখিত কোড রান সামঞ্জস্যপূর্ণ যথেষ্ট কিভাবে?


17
মাইন্ডটচ ডটকম খুব শক্তিশালী উইকি প্ল্যাটফর্মের জন্য দেবিতে মনোতে সি # ব্যবহার করছে। তাদের পরীক্ষা করে দেখুন। এমনকি আপনি পূর্বনির্ধারিত ভিএম ডাউনলোড করতে পারেন যা আপনি সহজেই সেটআপ এবং ব্যবহার করতে পারেন।
লামক্রো

7
আমি পেয়েছি মনোর সর্বোত্তম ব্যবহার বলতে সক্ষম হচ্ছে, "মাইক্রোসফ্ট যদি এক্সএক্সএক্স করে তবে আমরা ইউনিক্সে মনোতে চলে যেতে পারতাম ..."
ইয়ান রিংরোজ

5
আমি মনে করি যে এইটির পরে পরিবর্তিত সমস্ত কিছু বিবেচনা করে এই প্রশ্নটি পুনরায় জিজ্ঞাসার দাবিদার।
জোস্টি

উত্তর:


402

বিবেচনা করার জন্য বেশ কয়েকটি পরিস্থিতি রয়েছে: (ক) আপনি যদি কোনও বিদ্যমান অ্যাপ্লিকেশন পোর্ট করছেন এবং ভাবছেন যে মনোও এই কাজের জন্য যথেষ্ট উপযুক্ত কিনা; (খ) আপনি কয়েকটি নতুন কোড লিখতে শুরু করছেন, এবং আপনি মনোো যথেষ্ট পরিপক্ক কিনা তা জানতে চান।

প্রথম কেসটির জন্য, আপনি মনো প্রয়োগ করে কতটা দূরে চলেছেন তা মূল্যায়নের জন্য আপনি মনো স্থানান্তর বিশ্লেষক সরঞ্জাম (মোমা) ব্যবহার করতে পারেন । যদি মূল্যায়ন উড়ন্ত রঙের সাথে ফিরে আসে তবে আপনার পরীক্ষা এবং কিউএ শুরু করা উচিত এবং শিপিংয়ের জন্য প্রস্তুত হওয়া উচিত।

আপনার মূল্যায়ন যদি মনো-তে তাদের শব্দার্থবিজ্ঞানের অনুপস্থিত বা উল্লেখযোগ্যভাবে পৃথক হওয়া বৈশিষ্ট্যগুলি হাইলাইট করে এমন একটি প্রতিবেদন নিয়ে আসে তবে কোডটি মানিয়ে নেওয়া, পুনর্লিখন করা যেতে পারে বা সবচেয়ে খারাপ ক্ষেত্রে আপনার অ্যাপ্লিকেশন হ্রাস কার্যকারিতা নিয়ে কাজ করতে পারে কিনা তা মূল্যায়ন করতে হবে।

আমাদের মোমা পরিসংখ্যান অনুসারে ব্যবহারকারী জমা দেওয়ার উপর ভিত্তি করে (এটি মেমরি থেকে) প্রায় ৫০% অ্যাপ্লিকেশন বাক্সের বাইরে কাজ করে, প্রায় ২৫% এর জন্য এক সপ্তাহের প্রায় কাজের প্রয়োজন হয় (রিফ্যাক্টরিং, অভিযোজন) আরও 15% এর জন্য গুরুতর প্রতিশ্রুতি প্রয়োজন আপনার কোডটির কিছু অংশ আবার করুন, এবং বাকিগুলি পোর্টিংকে বিরক্ত করার মতো নয় কারণ এগুলি অবিশ্বাস্যভাবে উইন 32 এর সাথে আবদ্ধ। এই মুহুর্তে, হয় আপনি শূন্য থেকে শুরু করেন, বা কোনও ব্যবসায়িক সিদ্ধান্ত আপনার কোডটি বহনযোগ্য করে তোলার প্রচেষ্টা চালিয়ে যাবে, তবে আমরা কয়েক মাস ধরে কাজের কথা বলছি (কমপক্ষে আমাদের কাছে থাকা প্রতিবেদনগুলি থেকে)।

আপনি যদি স্ক্র্যাচ থেকে শুরু করে থাকেন তবে পরিস্থিতিটি অনেক সরল, কারণ আপনি কেবল মনোতে উপস্থিত এপিআই ব্যবহার করবেন। আপনি যতক্ষণ সমর্থিত স্ট্যাকের সাথে থাকেন (যতক্ষণ না অনেকটা নেট .০.০, প্লাস লিনকুই এবং সিস্টেম.কোর সহ 3.5.৩ এ সমস্ত মূল আপগ্রেড, আরও মনো ক্রস-প্ল্যাটফর্ম এপিআই এর কোনওটি) আপনি ভাল থাকবেন।

প্রতিবার একবারে আপনি মনো বা সীমাবদ্ধতার মধ্যে বাগগুলি চালাতে পারেন এবং আপনার চারপাশে কাজ করতে হতে পারে তবে এটি অন্য কোনও সিস্টেমের থেকে আলাদা নয়।

বহনযোগ্যতার জন্য: এএসপি.এনইটি অ্যাপ্লিকেশনগুলি পোর্ট করা সহজতর, কারণ উইন 32 এর কোনও নির্ভরতা নেই এবং আপনি এসকিউএল সার্ভার বা অন্যান্য জনপ্রিয় ডাটাবেসগুলিও ব্যবহার করতে পারেন (মনোর সাথে প্রচুর পরিমাণে বান্ডেলযুক্ত ডাটাবেস সরবরাহকারী রয়েছে)।

উইন্ডোজ.ফর্মের পোর্টিংটি কখনও কখনও জটিল হয় কারণ ডেভেলপাররা ডটকমের বিসিডি ফর্মটিতে এনসিড করা দুটি বেজার পয়েন্ট হিসাবে পরিবর্তিত কার্সার জ্বলজ্বলে হারকে পরিবর্তন হিসাবে কার্যকর হিসাবে কনফিগার করার জন্য .NET স্যান্ডবক্স এবং পি / তাদের মস্তিষ্কের ডাক দেয়। বা কিছু জাঙ্ক।


276
এই লোক তিনি মনে করেন ? মনো এর স্রষ্টা ??? !! ... ও অপেক্ষা করুন ..

15
@ ড্রাহির: লিনকু মনোতে কাজ করে। এটি উইন্ডোজ নির্দিষ্ট নয়। সুতরাং এগিয়ে যান এবং লিনাক্স চেষ্টা করুন।
জিফ্রে

31
"কার্সার জ্বলজ্বলে হার পরিবর্তনের মতো দরকারী জিনিসগুলি ডাব্লুপিআরএম-তে বিসিডি আকারে দুটি বেজিয়ার পয়েন্ট হিসাবে এনকোড করা হিসাবে প্রকাশিত হয়েছে" লোল
usr


28
মাইগুয়েল, এই পোস্টে একটি আপডেট পেতে ভাল লাগবে ;-)
ডেভিড স্মিট

65

এটি নেট নেট 4.0.০ অবধি বেশ বিস্তৃত কভারেজ রয়েছে এবং এমনকি নেট নেট 4.5.৪ এপিআইয়ের কিছু বৈশিষ্ট্য অন্তর্ভুক্ত করেছে, তবে কয়েকটি ক্ষেত্র রয়েছে যা আমরা এপিআই-কে অবমূল্যায়ন, নতুন বিকল্প তৈরি করা বা সুযোগের সুযোগের কারণে বাস্তবায়ন না করার জন্য বেছে নিয়েছি বড়। নিম্নলিখিত API গুলি মনোতে উপলভ্য নয়:

  • উইন্ডোজ উপস্থাপন প্রতিষ্ঠা
  • উইন্ডোজ ওয়ার্কফ্লো ফাউন্ডেশন (দুটি সংস্করণের কোনও নয়)
  • সত্তা ফ্রেমওয়ার্ক
  • ডাব্লুএসই 1 / ডাব্লুএসই 2 স্ট্যান্ডার্ড ওয়েব সার্ভিস স্ট্যাকের "অ্যাড-অনস"

অতিরিক্তভাবে, আমাদের ডাব্লুসিএফ বাস্তবায়ন সিলভারলাইট সমর্থিত সীমাবদ্ধ।

আপনার নির্দিষ্ট প্রকল্পটি যাচাই করার সহজ উপায় হ'ল মনো মাইগ্রেশন অ্যানালাইজার (এমওএমএ) চালানো । সুবিধাটি হ'ল এটি মনো মনো দলকে ইস্যুগুলির বিষয়ে অবহিত করবে যা আপনাকে মনো ব্যবহার করতে বাধা দেবে (যদি থাকে), যা তাদের কাজের অগ্রাধিকার দিতে দেয়।

আমি সম্প্রতি সাবসোনিকের এমএমএ চালিয়েছি এবং কেবল একটি ইস্যু পেয়েছি - নুলযোগ্য প্রকারের এক অদ্ভুত ব্যবহার। এটি একটি বড় কোডবেস, তাই সেখানে কভারেজটি বেশ চিত্তাকর্ষক ছিল।

মনো বেশ কয়েকটি বাণিজ্যিক পাশাপাশি ওপেন সোর্স পণ্যগুলিতে সক্রিয় ব্যবহারে রয়েছে । এটি উইকিপিডিয়া এবং মজিলা বিকাশকারী কেন্দ্রের মতো কয়েকটি বড় অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হচ্ছে এবং এম্বেড অ্যাপ্লিকেশন যেমন সানসা এমপি 3 প্লেয়ার এবং হাজার হাজার প্রকাশিত গেমের ক্ষমতা হিসাবে ব্যবহৃত হয়েছে।

ভাষা স্তরে, মনো-সংকলক সি # 5.0 ভাষার স্পেসিফিকেশনটির সাথে সম্পূর্ণরূপে মেনে চলে


39

ডেস্কটপ দিকে, মনো আপনি দুর্দান্ত কাজ করে যদি আপনি জিটিকে # ব্যবহার করার প্রতিশ্রুতি দেন। উইন্ডোজ.ফর্মস বাস্তবায়ন এখনও কিছুটা বগি (উদাহরণস্বরূপ, ট্রে আইকন এর কাজ করে না) তবে এটি অনেক এগিয়ে গেছে। এছাড়াও, জিটিকে # উইন্ডোজ ফর্মগুলির চেয়ে ভাল একটি টুলকিট।

ওয়েব সাইডে, মনো বেশিরভাগ সাইটকে নিখুঁতভাবে চালাতে যথেষ্ট এএসপি.এনইটি প্রয়োগ করেছে। এখানে অসুবিধাটি এমন কোনও হোস্টকে সন্ধান করছে যা অ্যাপাচে ইনস্টল করা মোড_মোনো রয়েছে বা আপনার হোস্টে শেল অ্যাক্সেস থাকলে নিজেই করছেন।

যে কোনও উপায়ে মনো মনো দুর্দান্ত এবং স্থিতিশীল।

ক্রস প্ল্যাটফর্ম প্রোগ্রাম তৈরি করার সময় মনে রাখা গুরুত্বপূর্ণ বিষয়গুলি:

  • উইন্ডোজ.ফর্মগুলির পরিবর্তে জিটিকে # ব্যবহার করুন
  • আপনার ফাইলের নামগুলি সঠিকভাবে কেস করার বিষয়টি নিশ্চিত করুন
  • Path.Separatorহার্ডকোডিংয়ের পরিবর্তে ব্যবহার করুন, পরিবর্তে "\"ব্যবহার Environment.NewLineকরুন "\n"
  • উইন 32 এপি-তে কোনও পি / ইনভয়েড কল ব্যবহার করবেন না।
  • উইন্ডোজ রেজিস্ট্রি ব্যবহার করবেন না।

2
পাথ.সেপারাটরটি ওএস এক্স-তে মনো'কে বাদ দিয়েই ভাল পরামর্শ, '/' নয়! হা! এটি পুরানো ম্যাক ওএস (<= 9.0) বিভাজক। Wha? ইউনিক্স / সমস্ত উপায়।
জ্যারেড আপডেটিকে

3
আমি এনভায়রনমেন্ট.নিউলাইন বা পাথ.সেপেটর নিয়ে বিরক্ত করি না, কেবল / এবং use n ব্যবহার করুন। প্রতিটি জনপ্রিয় ডেস্কটপ সিস্টেম বর্তমানে জনপ্রিয় ব্যবহৃত (যদি না আমি কিছু মিস করছি), / এবং \ n ব্যবহার করে। উইন্ডোজ \ এবং \ r \ n পছন্দ করে তবে আনন্দের সাথে ইউনিক্সগুলি ব্যবহার করবে।
প্রোগ্রামমুদে

23

আমি ব্যক্তিগতভাবে মনোকে একটি প্রাইম-টাইম এনভির মধ্যে ব্যবহার করি। আমি ইউডিপি / টিসিপি ডেটা প্রসেসিং সম্পর্কিত কাজগুলির গিগা-বাইটগুলি নিয়ে কাজ করে মনো সার্ভারগুলি চালিত করি এবং এর চেয়ে বেশি খুশি হতে পারে না।

অদ্ভুততা রয়েছে এবং সবচেয়ে বিরক্তিকর একটি হ'ল মনোর বর্তমান অবস্থার কারণে আপনি নিজের এমএসবিল্ড ফাইলগুলি কেবল "বিল্ড" করতে পারবেন না:

  • মনো-ডেভেলফ (আইডিই) এর কিছু আংশিক মিসবিল্ড সমর্থন রয়েছে, তবে মূলত কোনও হ্যালো-ওয়ার্ল্ড (কাস্টম বিল্ড টাস্কস, ডায়নামিক "প্রপার্টি" $ (সলিউশনডির) এর বাইরেও কিছু মৃতের নামকরণের আসল কনফিগারেশনকে ছাড়িয়ে মূলত "রিয়েল" বিল্ড কনফারেন্সকে উদ্বুদ্ধ করবে few -ends)
  • xbuild যা হওয়া উচিত ছিল মনো-সরবরাহকৃত-msbuild-সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ-বিল্ড-সিস্টেম আরও বেশি ভয়ঙ্কর আসলে গুই, যা একটি খুব "অগতানুগতিক" রাজ্যের ব্যবহার চেয়েও খারাপ অভিজ্ঞতা, তাই কম্যান্ড লাইন থেকে নির্মাণ করছে লিনাক্স পরিবেশের জন্য ইউনিয়ন ...

আপনার জিনিসগুলি একবারে কিনে দেওয়ার সময়, আপনি কোডের জন্য এমন কিছু ওয়াইল্ডারেন্সগুলি দেখতে পাবেন যেগুলি সমর্থন করা উচিত:

  • সংকলক নির্দিষ্ট নির্মাণে borked হচ্ছে
  • এবং নির্দিষ্ট আরও উন্নত / নতুন .NET ক্লাসগুলি আপনাকে প্রত্যাশিত বোকা ছোঁড়াচ্ছে (এক্সলিনক কেউ?)
  • কিছু অপরিণত রানটাইম "বৈশিষ্ট্য" (3 জিবি হিপ লিমিট অন এক্স 64 ... ডাব্লুটিএফ!)

তবে হেভিং বলেছে যে সাধারণত কথা বলার জিনিসগুলি খুব দ্রুত কাজ শুরু করে, এবং সমাধান / ওয়ার্কআরউন্ড প্রচুর

একবার আপনি এই প্রাথমিক বাধাগুলি অতিক্রম করার পরে, আমার অভিজ্ঞতা হ'ল মনো রকস এবং প্রতিটি পুনরাবৃত্তির সাথে আরও ভাল হয়ে উঠছে

আমার কাছে সারো চলছিল, প্রতিদিন 300 জিবি ডেটা প্রসেসিং করছে, কয়েক টন পি / ইনভোকেস নিয়ে এবং সাধারণত প্রচুর কাজ করে কথা বলে এবং 5-6 মাস ইউপি থাকে, এমনকি "রক্তপাতের প্রান্ত" মনোও রয়েছে with

আশাকরি এটা সাহায্য করবে.


1
আপনি আমাকে বলতে পারেন (আপনি যদি করতে পারেন) আপনি যে ওয়েবসাইটটির কথা বলছেন তা কী?
ক্রিস্টোফ ডেভো

21

গৃহীত উত্তরের জন্য দেওয়া সুপারিশগুলি এখন কিছুটা পুরানো।

  • উইন্ডোজ ফর্ম বাস্তবায়ন এখন বেশ ভাল। ( পেইন্ট- মোনোটি পেন্টটনেটের একটি বন্দরের জন্য দেখুন যা একটি দুর্দান্তভাবে জড়িত উইন্ডোজ ফর্ম অ্যাপ্লিকেশন that যা কিছু ছিল কেবল পি-ইনভোক এবং অসমর্থিত সিস্টেম কলগুলির জন্য একটি এমুলেশন স্তর)।
  • পাথ.কোবাইন পাশাপাশি পথ এবং ফাইলের নামগুলিতে যোগদানের জন্য পাঠ্য.সেপ্রেটার।
  • উইন্ডোজ রেজিস্ট্রি ঠিক আছে, যতক্ষণ না আপনি এটি কেবল আপনার অ্যাপ্লিকেশনগুলি থেকে ডেটা সঞ্চয় এবং পুনরুদ্ধারের জন্য ব্যবহার করছেন (যেমন এটি উইন্ডোজ সম্পর্কে কোনও তথ্যই পাবেন না, কারণ এটি মূলত মনো অ্যাপ্লিকেশনগুলির জন্য একটি রেজিস্ট্রি)।

ফলোআপের জন্য +1 ... দেখে মনে হচ্ছে এই পৃষ্ঠাটি আবারও পুরানো হতে পারে।
8:25

1
হ্যাঁ, দু'বছর মনোর জীবনকাল যাঁরা guys লোকরা যে গতির সাথে কাজ করে।
ক্রিস এরিকসন

12

আপনি যদি ডাব্লুপিএফ ব্যবহার করতে চান তবে আপনার ভাগ্য থেকে দূরে থাকবেন মনোোর বর্তমানে এটি বাস্তবায়নের কোনও পরিকল্পনা নেই।

http://www.mono-project.com/WPF


3
এটা সত্যিই খুব খারাপ। ডাব্লুপিএফ একটি শালীন ইউআই টুলকিট।
জেপি রিচার্ডসন

@ জেপি রিচার্ডসন আপনি যা পেয়েছেন তা পেয়েছি - প্রোগ্রামিং করার সময় এটি খুব ভাল - তবে যদি এটি কোনও বহনযোগ্য টুলকিট হওয়ার উদ্দেশ্য নিয়ে ধারণা থেকে তৈরি না হয় তবে আমি এটিকে "শালীন" বলব না।
Wyatt8740

@ Wyatt8740 আমার মন্তব্যটি 10 ​​বছর আগে লেখা হয়েছিল।
জে পি রিচার্ডসন

@ জে পি রিচার্ডসন লও, আমার খারাপ। তবে এটি এখনও দশ বছর আগে পোর্টেবল হতে পারে না।
Wyatt8740

9

ঠিক আছে, মনো এক দুর্দান্ত, তবে যতদূর আমি দেখতে পাচ্ছি এটি অস্থির। এটি কার্যকর হয়, তবে যখন আপনি মনো প্রক্রিয়াটি করার জন্য একটি গুরুতর কাজ দেন ত্রুটিগুলি।

টিএল; ডিআর - আপনি যদি মনো ব্যবহার করেন না:

  • মাল্টিথ্রেড পরিবেশে AppDomains (সমাবেশ লোড \ আনলোড) ব্যবহার করুন
  • 'লেট-ইট-ব্যর্থ' মডেলটি ধরে রাখতে পারি না
  • প্রক্রিয়া চলাকালীন মাঝে মাঝে ভারী-লোড ইভেন্টগুলির অভিজ্ঞতা অর্জন করুন

সুতরাং, ঘটনা।

আমরা আরএইচইল 5, উবুন্টুতে মনো-২.6.net (। নেট v 3.5) ব্যবহার করি এবং আমার দৃষ্টিতে এটি নভেল নির্মিত সবচেয়ে স্থিতিশীল সংস্করণ। এটি অ্যাপলডমিনস আনলোড (সেগফাল্টস) নিয়ে একটি সমস্যা রয়েছে, তবে এটি খুব কমই ব্যর্থ হয় এবং এটি এখন পর্যন্ত গ্রহণযোগ্য (আমাদের কাছে)।

ঠিক আছে. তবে আপনি। নেট 4.0.০ এর বৈশিষ্ট্যগুলি ব্যবহার করতে চাইলে আপনাকে 2.10.x বা 3.x সংস্করণে যেতে হবে এবং এখান থেকেই সমস্যা শুরু হয়।

২.6..7 এর তুলনায় নতুন সংস্করণগুলি কেবল ব্যবহারযোগ্য নয়। আমি মনো ইনস্টলেশন ইনস্টল করার জন্য একটি সাধারণ স্ট্রেস টেস্ট অ্যাপ্লিকেশন লিখেছিলাম

এটি এখানে ব্যবহারের নির্দেশাবলী সহ: https://github.com/head-thrash/stress_test_mono

এটি থ্রেড পুল কর্মী থ্রেড ব্যবহার করে। কর্মীরা অ্যাপডোমাইনকে ডেল করে এবং কিছু গণিত-কাজ করার চেষ্টা করে। কিছু কাজ বহু-থ্রেডযুক্ত, কিছু একক is প্রায় সমস্ত কাজ সিপিইউ-আবদ্ধ, যদিও ডিস্ক থেকে ফাইলগুলির কিছু পাঠ্য রয়েছে।

ফলাফল খুব ভাল হয় না। আসলে, সংস্করণ 3.0.12 এর জন্য:

  • sgen GC segfaults প্রায় তাত্ক্ষণিকভাবে প্রক্রিয়া করে
  • বোহেমযুক্ত মনো আরও দীর্ঘকাল বেঁচে থাকে (2 থেকে 5 ঘন্টা পর্যন্ত) তবে অবশেষে সেগফাল্টস

উপরে উল্লিখিত হিসাবে, সিগন জিসি কেবল কাজ করে না (উত্স থেকে নির্মিত মনো):

* Assertion: should not be reached at sgen-scan-object.h:111

Stacktrace:


Native stacktrace:

    mono() [0x4ab0ad]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x2b61ea830cb0]
    /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x2b61eaa74425]
    /lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x2b61eaa77b8b]
    mono() [0x62b49d]
    mono() [0x62b5d6]
    mono() [0x5d4f84]
    mono() [0x5cb0af]
    mono() [0x5cb2cc]
    mono() [0x5cccfd]
    mono() [0x5cd944]
    mono() [0x5d12b6]
    mono(mono_gc_collect+0x28) [0x5d16f8]
    mono(mono_domain_finalize+0x7c) [0x59fb1c]
    mono() [0x596ef0]
    mono() [0x616f13]
    mono() [0x626ee0]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x2b61ea828e9a]
    /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x2b61eab31ccd]

বোহেম সেগফৌলগুলির জন্য - উদাহরণস্বরূপ (উবুন্টু 13.04, উত্স থেকে নির্মিত মনো):

mono: mini-amd64.c:492: amd64_patch: Assertion `0' failed.
Stacktrace:
at <unknown> <0xffffffff>
at System.Collections.Generic.Dictionary`2.Init (int,System.Collections.Generic.IEqualityComparer`1<TKey>) [0x00012] in /home/bkmz/my/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:264
at System.Collections.Generic.Dictionary`2..ctor () [0x00006] in /home/bkmz/my/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:222
at System.Security.Cryptography.CryptoConfig/CryptoHandler..ctor (System.Collections.Generic.IDictionary`2<string, System.Type>,System.Collections.Generic.IDictionary`2<string, string>) [0x00014] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/Crypto
Config.cs:582
at System.Security.Cryptography.CryptoConfig.LoadConfig (string,System.Collections.Generic.IDictionary`2<string, System.Type>,System.Collections.Generic.IDictionary`2<string, string>) [0x00013] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/CryptoCo
nfig.cs:473
at System.Security.Cryptography.CryptoConfig.Initialize () [0x00697] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:457
at System.Security.Cryptography.CryptoConfig.CreateFromName (string,object[]) [0x00027] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:495
at System.Security.Cryptography.CryptoConfig.CreateFromName (string) [0x00000] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:484
at System.Security.Cryptography.RandomNumberGenerator.Create (string) [0x00000] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/RandomNumberGenerator.cs:59
at System.Security.Cryptography.RandomNumberGenerator.Create () [0x00000] in /home/bkmz/my/mono/mcs/class/corlib/System.Security.Cryptography/RandomNumberGenerator.cs:53
at System.Guid.NewGuid () [0x0001e] in /home/bkmz/my/mono/mcs/class/corlib/System/Guid.cs:492

বা (আরএইচইএল 5, মনো এখানে আরপিএম থেকে নেওয়া হবে ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home%3A/vmas%3A/mono-centos5 )

Assertion at mini.c:3783, condition `code' not met
Stacktrace:
at <unknown> <0xffffffff>
at System.IO.StreamReader.ReadBuffer () [0x00012] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.IO/StreamReader.cs:394
at System.IO.StreamReader.Peek () [0x00006] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.IO/StreamReader.cs:429
at Mono.Xml.SmallXmlParser.Peek () [0x00000] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/Mono.Xml/SmallXmlParser.cs:271
at Mono.Xml.SmallXmlParser.Parse (System.IO.TextReader,Mono.Xml.SmallXmlParser/IContentHandler) [0x00020] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/Mono.Xml/SmallXmlParser.cs:346
at System.Security.Cryptography.CryptoConfig.LoadConfig (string,System.Collections.Generic.IDictionary`2<string, System.Type>,System.Collections.Generic.IDictionary`2<string, string>) [0x00021] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Security.Cryptog
raphy/CryptoConfig.cs:475
at System.Security.Cryptography.CryptoConfig.Initialize () [0x00697] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:457
at System.Security.Cryptography.CryptoConfig.CreateFromName (string,object[]) [0x00027] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:495
at System.Security.Cryptography.CryptoConfig.CreateFromName (string) [0x00000] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Security.Cryptography/CryptoConfig.cs:484
at System.Security.Cryptography.RandomNumberGenerator.Create (string) [0x00000] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Security.Cryptography/RandomNumberGenerator.cs:59
at System.Security.Cryptography.RandomNumberGenerator.Create () [0x00000] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Security.Cryptography/RandomNumberGenerator.cs:53
at System.Guid.NewGuid () [0x0001e] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System/Guid.cs:483
at System.Runtime.Remoting.RemotingServices.NewUri () [0x00020] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs:356
at System.Runtime.Remoting.RemotingServices.Marshal (System.MarshalByRefObject,string,System.Type) [0x000ba] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs:329
at System.AppDomain.GetMarshalledDomainObjRef () [0x00000] in /usr/src/redhat/BUILD/mono-3.0.3/mcs/class/corlib/System/AppDomain.cs:1363

উভয় ব্যর্থতা কোনওভাবে অ্যাপডোমাইনস যুক্তির সাথে সংযুক্ত, সুতরাং, আপনার মনো থেকে তাদের থেকে দূরে থাকা উচিত।

বিটিডাব্লু, পরীক্ষিত প্রোগ্রামটি এমএস। নেট 4.5.৫ এনভিউতে উইন্ডোজ মেশিনে 24 ঘন্টা কাজ করে, কোনও ব্যর্থতা ছাড়াই।

সুতরাং, উপসংহারে, আমি বলতে চাই - সাবধানতার সাথে মনো ব্যবহার করুন। এটি প্রথম নজরে থেকে কাজ করে তবে সহজেই যখনই ব্যর্থ হতে পারে। আপনার কাছে একগুচ্ছ কোর ডাম্প এবং ওপেনসোর্স প্রকল্পগুলিতে বড় বিশ্বাসের ক্ষতি হবে।


আপনি কি জামারিন বাগজিলায় একটি বাগ ফাইল করার চেষ্টা করেছেন ?
মিকম



5

মোমা এটির জন্য একটি দুর্দান্ত সরঞ্জাম, যেমন অন্য কেউ পরামর্শ দিয়েছেন। আজকাল বেমানান হওয়ার সবচেয়ে বড় উত্স হ'ল অ্যাপ্লিকেশনগুলি যা ডেলইম্পোর্ট (বা পি / ইনভোক) উইন 32 লাইব্রেরিতে প্রবেশ করে। কিছু অ্যাসেমব্লি বাস্তবায়িত হয় না, তবে তাদের বেশিরভাগগুলি উইন্ডোজ-শুধুমাত্র এবং লিনাক্সের পক্ষে সত্যিকার অর্থে তা বোঝায় না। আমি মনে করি এটি মোটামুটি নিরাপদে বলা যায় যে বেশিরভাগ এএসপি.এনইটি অ্যাপ্লিকেশনগুলি মনোতে সীমিত পরিবর্তনগুলি সহ চলতে পারে।

(প্রকাশ: আমি মনোতে নিজেই অবদান রেখেছি, পাশাপাশি লিখিত অ্যাপ্লিকেশনগুলি যা এর উপরে চলে run


4
যে কারও মাথা আঁচড়ান এই বিষয়টির জন্য মনো মাইগ্রেশন অ্যানালাইজার হ'ল আধুনিক শিল্পকর্মের জাদুঘরটির সাথে এর কী আছে wond
ফেরুকসিও

4

অনেক ক্ষেত্রে, আপনি বিদ্যমান কোডটি নিতে পারেন এবং এটি কেবল মনোোতে চালাতে পারেন, বিশেষত যদি আপনি একটি এএসপি.এনইটি অ্যাপ্লিকেশন পোর্ট করছেন।

কিছু ক্ষেত্রে, কোডটি কার্যকর করতে আপনার সম্পূর্ণ নতুন বিভাগের প্রয়োজন হতে পারে। আপনি যদি System.Windows. Forms ব্যবহার করেন তবে উদাহরণস্বরূপ, অ্যাপ্লিকেশনটি অযৌক্তিকভাবে কাজ করবে না। অনুরূপভাবে যদি আপনি কোনও উইন্ডোজ-নির্দিষ্ট কোড ব্যবহার করেন (উদাহরণস্বরূপ রেজিস্ট্রি অ্যাক্সেস কোড)। তবে আমি মনে করি সবচেয়ে খারাপ অপরাধী ইউআই কোড। ম্যাকিনটোস সিস্টেমে এটি বিশেষত খারাপ।


4

আমরা এটিকে এখানে কাজের জন্য এমন একটি প্রকল্পের জন্য ব্যবহার করছি যা লিনাক্সে চালিত হওয়া দরকার তবে আমরা পরিচালিত সি ++ এ নির্মিত কিছু .NET লাইব্রেরি পুনরায় ব্যবহার করতে পারি। এটি কতটা কার্যকর হয়েছে তা দেখে আমি খুব অবাক হয়েছি। আমাদের প্রধান নির্বাহযোগ্য সি # তে লেখা হচ্ছে এবং আমরা কেবল আমাদের সমস্যাযুক্ত সি ++ বাইনারিগুলি উল্লেখ করতে পারি no উইন্ডোজ এবং লিনাক্সের মধ্যে সি # কোডের একমাত্র পার্থক্যটি হল আরএস 232 সিরিয়াল পোর্ট কোড।

একমাত্র বড় সমস্যাটি আমি ভাবতে পারি প্রায় এক মাস আগে ঘটেছিল। লিনাক্স বিল্ডটির একটি মেমরি ফাঁস ছিল যা উইন্ডোজ বিল্ডে দেখা যায় নি। কিছু ম্যানুয়াল ডিবাগিং করার পরে (লিনাক্সে মনোর জন্য প্রাথমিক প্রোফাইলাররা খুব বেশি কিছু করতে পারেনি), আমরা সমস্যাটিকে কোডের একটি নির্দিষ্ট অংশে সংকীর্ণ করতে সক্ষম হয়েছি। আমরা একটি কার্যনির্বাহীকরণের প্যাচিং শেষ করেছি, তবে এখনও ফিরে যেতে এবং ফাঁসের মূল কারণটি খুঁজে বের করার জন্য আমার কিছুটা সময় প্রয়োজন।


সুতরাং আপনি সিরিয়াল পোর্টগুলির জন্য কোড লিখবেন যা উভয়ই পরিচালনা করে? সিএলআর / মনো এর পুরো পয়েন্টটি প্ল্যাটফর্মটি স্বাধীন হতে হবে, তাই না? এটি কনফিগারেশন ফাইলগুলিতে সম্পন্ন হয়?
টিম

2

আপনি কি জানেন যে উইন্ডোজ ফর্মগুলি 2.0 এর জন্য মনোো 2.0 প্রিভিউর সমর্থনটি কতটা ভাল?

আমি এটির সাথে খেলেছি, এটি তুলনামূলকভাবে সম্পূর্ণ এবং প্রায় ব্যবহারযোগ্য বলে মনে হয়েছিল। এটি কিছু জায়গায় ঠিক ঠিক দেখতে লাগেনি এবং এখনও পুরোপুরি সামান্য আঘাত বা মিস হচ্ছে is এটি আমাকে বিস্মিত করেছে যে এটি আমাদের কিছু ফর্মের সাথে যেমন কাজ করেছে ঠিক ততই সততার সাথে।


2

হ্যাঁ এটি অবশ্যই হ'ল (আপনি যদি সতর্ক হন তবে) আমরা রা-আজাক্সে মনোকে সমর্থন করি ( http://ra-ajax.org এ পাওয়া আজাক্স লাইব্রেরি ) এবং আমাদের বেশিরভাগ ক্ষেত্রেই সমস্যা হয় না। আপনার কিছু "সবচেয়ে উন্মাদ জিনিস" থেকে সাবধান হওয়া দরকার। ডাব্লুএসই ইত্যাদির মতো নেট, এবং সম্ভবত আপনার বিদ্যমান কয়েকটি প্রকল্পের 100% মনো সামঞ্জস্যপূর্ণ হবে না, তবে নতুন প্রকল্পগুলি যদি আপনি উন্নয়নের সময় পরীক্ষা করেন তবে বেশিরভাগ ক্ষেত্রেই এটি হবে মনো সঙ্গে সমস্যা ছাড়াই সামঞ্জস্যপূর্ণ হতে হবে। এবং মনো ব্যবহারের মাধ্যমে লিনাক্স ইত্যাদিকে সমর্থন করা থেকে লাভটি সত্যিই দুর্দান্ত;)

আমি মনে করি মনোকে সমর্থন করার গোপনীয়তার একটি বৃহত অংশ হ'ল প্রথম থেকেই সঠিক সরঞ্জামগুলি ব্যবহার করা, যেমন অ্যাক্টিভেকর্ড, লগ 4 নেট, রা-এজাক্স ইত্যাদি ...


2

দুর্ভাগ্যক্রমে দুর্ভাগ্যক্রমে আমরা মনো তৈরি করছি এমন অ্যাপ্লিকেশনটির জন্য উত্পাদনের জন্য প্রস্তুত বলে মনে হচ্ছে না। আমরা এটির সামগ্রিকভাবে মুগ্ধ হয়েছি এবং উইন্ডোজ এবং ইসি 2 মেশিনে উভয়ই এর কার্যকারিতা দিয়ে মুগ্ধ হয়েছি, তবে, আমাদের প্রোগ্রামটি উইন্ডোজ এবং লিনাক্স উভয় ক্ষেত্রেই আবর্জনা সংগ্রহের ত্রুটির সাথে ধারাবাহিকভাবে ক্র্যাশ হয়েছিল।

ত্রুটির বার্তাটি হ'ল: "জিসিতে মারাত্মক ত্রুটি: অনেকগুলি হিপ বিভাগ", এখানে অন্য কেউ সমস্যাটি কিছুটা ভিন্ন উপায়ে অনুভব করছেন তার লিঙ্ক:

http://bugzilla.novell.com/show_bug.cgi?id=435906

মনোতে আমরা যে প্রথম কোডটি নিয়েছিলাম সেটি হ'ল একটি সাধারণ প্রোগ্রামিং চ্যালেঞ্জ যা আমরা বিকাশ করতাম ... কোডটি প্রায় 10 মিমি ডেটা কিছু ডেটা স্ট্রাকচারে (যেমন হ্যাশসেটস) লোড করে, তারপর ডেটার বিরুদ্ধে 10 টি ক্যোয়ারী চালায়। এগুলির সময় নির্ধারণ করতে এবং গড় পেতে আমরা 100 বার অনুসন্ধান চালিয়েছি।

কোডটি উইন্ডোজে 55 তম ক্যোয়ারির চারপাশে ক্র্যাশ হয়েছিল। লিনাক্সে এটি কাজ করে, তবে যত তাড়াতাড়ি আমরা একটি বড় ডেটা সেটে স্থানান্তরিত করেছি, এটিও ক্র্যাশ হয়ে যাবে।

এই কোডটি খুব সহজ, যেমন হ্যাশসেটে কিছু ডেটা রাখুন এবং তারপরে সেই সমস্ত হ্যাশসেটস ইত্যাদি জিজ্ঞাসা করুন, সমস্ত নেটিভ সি #, অনিরাপদ কিছুই নয়, কোনও এপিআই কল নেই। মাইক্রোসফ্ট সিএলআর-এ এটি কখনই ক্র্যাশ হয় না এবং বিশাল ডেটা সেটগুলিতে চলে যায় বারবার ঠিক।

আমাদের এক ছেলে মিগুয়েলকে ইমেল করেছিল এবং কোডটি অন্তর্ভুক্ত করেছে যা সমস্যার সৃষ্টি করেছে, এখনও কোনও প্রতিক্রিয়া নেই। :(

এটিও মনে হয় অনেক অন্যান্য লোকেরা সমাধান না করেই এই সমস্যার মুখোমুখি হয়েছেন - এক সমাধানে বিভিন্ন জিসি সেটিংস সহ মনোকে পুনরায় সংকলনের পরামর্শ দেওয়া হয়েছিল তবে এটি ক্রস হওয়ার আগেই কেবল প্রান্তিকতা বাড়িয়ে তোলে।


9
বাগ রিপোর্ট করার জন্য বাগজিলা হ'ল জায়গা: মিগুয়েল চূড়ান্ত ব্যস্ত এবং কেউই তাকে পৃথক বাগ প্রতিবেদন পাঠানোর সাথে তাল মিলিয়ে রাখতে পারে না। আপনি যদি নমুনা কোডটি প্রকাশ করতে না পারেন তবে আপনার সমস্যাটি বাগজিলায় রিপোর্ট করা উচিত এবং সেখানে নোট করুন যে আপনি নমুনাটি মিগুয়েল বা আমার কাছে পাঠিয়েছেন (lupus@ximian.com)।
লুপাস

2

শুধু www.plasticscm.com দেখুন। মনোতে সমস্ত কিছুই (ক্লায়েন্ট, সার্ভার, জিইউআই, মার্জ সরঞ্জাম) লিখিত আছে।


1

এটি .NET ফ্রেমওয়ার্ক থেকে আপনি যে নেমস্পেস এবং ক্লাসগুলি ব্যবহার করছেন তা সত্যিই নির্ভর করে। আমার ইমেল সার্ভারে চালানোর জন্য আমার একটি উইন্ডো পরিষেবাদি রূপান্তর করতে আগ্রহী, যা সুস, তবে আমরা এপিআই সহ বেশ কয়েকটি হার্ড রোডব্লকগুলিতে চলে গিয়েছিলাম যা পুরোপুরি প্রয়োগ করা হয়নি। মনো ওয়েবসাইটটিতে কোথাও একটি চার্ট রয়েছে যা ক্লাসগুলির সমস্ত এবং তাদের সমাপ্তির স্তরগুলির তালিকা করে। যদি আপনার অ্যাপ্লিকেশনটি কভার করা থাকে, তবে এটির জন্য যান।

অন্য কোনও অ্যাপ্লিকেশনটির মতো, অবশ্যই আপনি সম্পূর্ণ প্রতিশ্রুতি দেওয়ার আগে অবশ্যই প্রোটোটাইপিং এবং টেস্টিং করুন।

আমাদের আরও একটি সমস্যা যার মধ্যে পড়েছিল তা হ'ল লাইসেন্সযুক্ত সফটওয়্যার: আপনি যদি অন্য কারও ডিএলএল উল্লেখ করে থাকেন তবে আপনি যে সমাবেশে সমাধিহীন তার অসম্পূর্ণতাগুলির পক্ষে আপনার পথ কোড করতে পারবেন না।


1

আমি তখন কল্পনা করব আপনার যদি কিছু তৃতীয় পক্ষের উপাদানগুলির সাথে অ্যাপ্লিকেশন থাকে তবে আপনার স্টাফ করা যেতে পারে। আমি সন্দেহ করি মনোকে মাথায় রেখে প্রচুর বিক্রেতারা বিকাশ করবে

উদাহরণ: http://commune.devexpress.com/forums/p/55085/185853.aspx


1

না, মনো গুরুতর কাজের জন্য প্রস্তুত নয়। আমি এফ # ব্যবহার করে উইন্ডোজে কয়েকটি প্রোগ্রাম লিখেছি এবং এগুলি মনোতে চালিয়েছি। এই প্রোগ্রামগুলি বেশ নিবিড়ভাবে ডিস্ক, মেমরি এবং সিপিইউ ব্যবহার করেছিল। আমি মনো লাইব্রেরিতে (পরিচালিত কোড) ক্র্যাশ, নেটিভ কোডে ক্র্যাশ এবং ভার্চুয়াল মেশিনে ক্র্যাশ দেখেছি। মনো যখন কাজ করত তখন প্রোগ্রামগুলি কমপক্ষে দ্বিগুণ ধীর ছিল। উইন্ডোজে নেট এবং আরও অনেক বেশি মেমরি ব্যবহার করত। গুরুতর কাজের জন্য মনো থেকে দূরে থাকুন।


4
এটি সত্য হিসাবে উপস্থাপিত প্রমাণ এবং আমার কাছে
এফইউডি

আসলে এএসপি.এনইটি এনআইএনএক্স / ফাস্ট-সিজিআইয়ের অধীনে আইআইএসের চেয়ে দ্রুত চলতে পারে। এগুলি সমস্ত কাঠামোর কোন অংশটি পোর্ট করা / ভালভাবে পরীক্ষা করা হয় তার উপর নির্ভর করে: মনো-প্রজেক্ট / সামঞ্জস্য । @ ফায়ারগ্রাসের সাথে অবশ্যই একমত হতে হবে।
রুই মার্কস

1
এটি একজন ব্যক্তির ব্যক্তিগত অভিজ্ঞতা যেমন উপস্থাপন করা হয়। এটি "আমার মনে হয়" এর সাথে উপস্থাপন ব্যতীত এটি এই আলোচনার বৈধ অবদান।
আমির আবির
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.