ASP.net বা ASP.net এমভিসি থেকে ক্লাসিক এএসপি


17

আমাদের কাছে একটি ওয়েব অ্যাপ্লিকেশন রয়েছে যা ক্লাসিক এএসপিতে বিকাশযুক্ত এবং এটি বর্তমান রূপে 5 বছরেরও বেশি সময় ধরে বিবর্তিত হয়েছে যার 100 পৃষ্ঠাগুলি, বিশাল ডাটাবেস এবং 10000 এর বেশি সক্রিয় ব্যবহারকারী প্রতিদিন কমপক্ষে 10 টিরও বেশি পৃষ্ঠাতে যাচ্ছেন।

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

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

বিকল্প 2: এই মুহুর্তে আমরা একটি সাধারণ মডিউল তৈরি করেছি এবং এটি একটি আইফ্রেমের মাধ্যমে ক্লাসিক এএসপি পৃষ্ঠায় ব্যবহার করেছি, যদিও এটি আইফ্রেমে ক্লাসিক এএসপি এবং নতুন পৃষ্ঠার মধ্যে ডেটা প্রেরণ করা বেশ ঝামেলার ছিল।

এটি কেবল আমাদের ব্যবহারকারীর বেসকে ঝামেলা না করে পুরো অ্যাপ্লিকেশনটির পুনর্লিখন কীভাবে অর্জন করা উচিত তার পরিকল্পনা পর্যায়ে রয়েছে।

আমি অন্যান্য প্রোগ্রামারদের মতামত, মতামত এবং পরামর্শ পেতে চাই এমন পরিস্থিতিতে আমাদের কী হওয়া উচিত? যদি কেউ এই ধরণের দৃশ্যের মুখোমুখি হন তবে আপনার মতামতটিও শেয়ার করুন।

এছাড়াও জানতে চান এএসপি নেটওয়্যারের ব্যবহার এমভিসি আমাকে এতে সহায়তা করবে?

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


3
+1 এটি খুব ভাল প্রশ্ন জেপিআরডি dy আমার কোনও প্রকল্পের জন্য আমি এত দীর্ঘ সময় অতিবাহিত করিনি যাতে আমি আপনার সমস্যাটি কল্পনাও করতে পারি না।
রবার্ট কোরিটনিক

আমি বুঝতে পারি এটি একটি "সত্যের পরে ভাল" মন্তব্য, তবে আপনাকে অগত্যা ওয়েবফর্ম বা এমভিসি উভয়কেই যেতে হবে না - একটি এমভিসি প্রকল্প ওয়েবফর্ম পৃষ্ঠাগুলি এবং তার বিপরীতে হোস্ট করতে পারে। আমি এসএসআরএস এবং রিপোর্টভিউয়ার নিয়ন্ত্রণের জন্য সমর্থন পেতে এমভিসি অ্যাপ্লিকেশনগুলিতে এটি করি ...
টাইসন টি।

উত্তর:


9

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

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

এটি দেওয়া, আমার প্রস্তাবটি সরাসরি অবিলম্বে এমভিসির দিকে রওনা করা হবে।

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

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

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


1
এমভিসি পুনরুদ্ধারের জন্য +1। এটি অবশ্যই অনেক সহজ স্থানান্তর হবে।
রবার্ট কোরিটনিক

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

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

1

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

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

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

লক্ষণীয় বিষয়, মাইক্রোসফ্ট স্কটগু অনুসারে ওয়েবফরমগুলি ত্যাগ করছে না (এক বছর আগের হিসাবে), তবে আমি মনে করি না যে এই কল করা যদি খুব কঠিন হয় / তবে যখন তারা এই দুটি প্রযুক্তির মধ্যে একটি পর্যায়ের করার সিদ্ধান্ত নেন, তা হবে ওয়েবফর্মগুলি।


8
আমি এমভিসির বক্তব্যে দৃ strongly়ভাবে একমত নই। আমি মনে করি Asp.net এমভিসি ওয়েব ফর্মগুলির চেয়ে অনেক ভাল উত্তরণের পথ হবে path হ্যাক আপনি চাইলে Asp.net এমভিসি নিয়ন্ত্রক ক্রিয়ায় ফিরে পোস্ট করতে বিদ্যমান পৃষ্ঠাগুলি ব্যবহার করতে পারেন। মডেলগুলি শক্তিশালী প্রকারের সাথে আবদ্ধ হয় (স্বয়ংক্রিয়ভাবে সার্ভারের বৈধতা পাওয়া)। এই জাতীয় জিনিসটি ওয়েবফোর্ডগুলি ব্যবহার করা অসম্ভবের পরে দ্বিতীয় হবে। ভাল জিনিসটি যদি তারা ক্লাসিক এএসপিতে পারদর্শী হয় তবে ওয়েব ফর্মগুলির চেয়ে এমভিসি তে আরোহণ করা আরও অনেক সহজ হবে। পুরানো এএসপি ঠিক তেমনভাবে এমভিসি এইচটিটিপি প্রোটোকলের সাথে উপযুক্ত, অন্যদিকে ওয়েবফর্মগুলি নয়। একেবারেই না.
রবার্ট কোরিটনিক

1

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

আমি "বড়" অ্যাপ্লিকেশনগুলিতে ওয়েব ফর্মগুলির ব্যবহারকে কঠোরভাবে নিরুৎসাহিত করি।


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

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

1

আমি অপশন 1 টি পছন্দ করি (এমভিসি সহ) অপশন 2 এর চেয়ে অনেক ভাল) কারণ এটি আপনাকে অ্যাপ্লিকেশনটিকে বর্ধিতভাবে উন্নত করতে দেয়, যখন আপনি দুটি অ্যাপ্লিকেশনকে আইফ্রেমস পদ্ধতির সাথে খুব বেশি সংযুক্ত না করেন।

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.