আমার পাশের কেউ কি কেবল এএসপি.নেট এমভিসি পাচ্ছেন না? [বন্ধ]


141

আমি সিটিপির পর থেকে এএসপি.নেট এমভিসির সাথে ফিড করছি এবং আমি তাদের অনেকগুলি জিনিস পছন্দ করি তবে এমন কিছু জিনিস রয়েছে যা আমি পাই না।

উদাহরণস্বরূপ, আমি বিটা 1 ডাউনলোড করেছি এবং আমি এটির সাথে একটি সামান্য ব্যক্তিগত সাইট / রেজ্যুম / ব্লগ একসাথে রাখছি। এখানে ViewSinglePost ভিউ থেকে একটি স্নিপেট রয়েছে:

 <%
        // Display the "Next and Previous" links
        if (ViewData.Model.PreviousPost != null || ViewData.Model.NextPost != null)
        {
            %> <div> <%

            if (ViewData.Model.PreviousPost != null)
            {
                %> <span style="float: left;"> <%
                    Response.Write(Html.ActionLink("<< " + ViewData.Model.PreviousPost.Subject, "view", new { id = ViewData.Model.PreviousPost.Id }));
                %> </span> <%
            }

            if (ViewData.Model.NextPost != null)
            {
                %> <span style="float: right;"> <%
                    Response.Write(Html.ActionLink(ViewData.Model.NextPost.Subject + " >>", "view", new { id = ViewData.Model.NextPost.Id }));
                %> </span> <%
            }
            %>
                   <div style="clear: both;" />
               </div> <%
        }
    %>

ন্যক্কারজনক! (এছাড়াও লক্ষ করুন যে এইচটিএমএল অস্থায়ী প্লেসোল্ডার এইচটিএমএল আছে, কার্যকারিতা কাজ করার পরে আমি একটি আসল নকশা তৈরি করব)

আমি কি ভুল কিছু করছি? কারণ আমি ক্লাসিক এএসপিতে অনেক অন্ধকার দিন অতিবাহিত করেছি এবং এই ট্যাগ স্যুপটি আমাকে দৃ strongly়তার সাথে মনে করিয়ে দেয়।

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

সুতরাং, আমাকে রূপান্তর করুন, একটি ডাই হার্ড ওয়েবফোর্স লোক, এর জন্য কেন আমার সুন্দরভাবে গঠিত এএসপিএক্স পৃষ্ঠা ছেড়ে দেওয়া উচিত?

সম্পাদনা: "টেম্প এইচটিএমএল / সিএসএস" লাইনটি বোল্ডড করা হয়েছে যাতে লোকেরা এটি সম্পর্কে স্টাফু করে।


3
মানুষ যে কিছু কুৎসিত মার্কআপ!
স্টিভেন এ লো।

39
আপনি কি আপনার এইচটিএমএল সহ সিএসএস মার্কআপ অন্তর্ভুক্ত করবেন?
টড স্মিথ

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

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

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

উত্তর:


152

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

ওয়েব ফর্ম

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

MVC

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

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

তুলনা

এমভিসি এর সুবিধাগুলি আপনার আউটপুট উত্পাদন করার জন্য উদ্বেগের পরিষ্কার বিচ্ছিন্নতা এবং একটি ক্লিনার, আরও HTML / সিএসএস / এজেএক্স / জাভাস্ক্রিপ্ট-কেন্দ্রিক মডেলকে ঘিরে। এটি পরীক্ষাযোগ্যতা বাড়ায়, আরও মানসম্পন্ন ডিজাইন সরবরাহ করে এবং আরও বেশি "ওয়েব 2.0" ধরণের ওয়েবসাইটের দরজা খুলে দেয়।

তবে পাশাপাশি কিছু উল্লেখযোগ্য ত্রুটি রয়েছে।

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

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

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

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

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

উপসংহার

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

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

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

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

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

আসল বিষয়টি হ'ল অনেক বিকাশকারী এমভিসির যত্ন নেন না এবং প্রকৃতপক্ষে এটি সংখ্যালঘু দৃষ্টিভঙ্গি নয় (এমনকি ব্লগগুলি ইঙ্গিত করে বলে মনে হয় এমএসের মধ্যেও)।


32
-1, আসল প্রশ্নটি ভাল - এই বলে যে আপনি কেন কিছু ভাল তা বুঝতে পারছেন না এবং আরও তথ্যের জন্য জিজ্ঞাসা করা দুর্দান্ত। যদিও এই উত্তরটি খুব অদ্ভুত - আপনি মূলত "আমি উভয়ই বুঝতে পারি না" বলে বর্ণনা করছি, তবে এটি একটি গল্পে আবৃত করছি।
অরিপ

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

75
পোস্টার যখন এমভিসি প্যাটার্নটি উত্তর দেওয়ার সময় এমনকি কিছু জানত না তখন কেন এটি "উত্তর" হিসাবে চিহ্নিত হয়েছে?
স্কটকুন

12
স্কটকুন - সম্মত, কেন এটি গৃহীত হয়েছিল তা নিশ্চিত নয়। দেখে মনে হচ্ছে যে তিনি সমস্ত কিছুই ওপিতে সম্মত ছিলেন। -1
জারেড

11
ওয়েবের দৃষ্টান্তটিকে আরও উপযুক্ত করে তোলার জন্য আমি আপনার ওয়েব ফর্মগুলির বৈশিষ্ট্যটির বিষয়টি নিয়েছি। ওয়েবফোর্মে মূলত ইভেন্ট-চালিত উইনফোর্ডস মডেলটি ওয়েবে আবৃত। যেমন কাঠামো - এবং আমরা বিকাশকারীরা যদি স্বর্গ বারণ করে, আমরা নন-এমএস ক্লায়েন্ট-সাইড সরঞ্জামগুলির সাথে কিছু করার চেষ্টা করি - আপনি ওয়েবের মাধ্যমে ইভেন্ট হ্যান্ডলিং করছেন এমন ভান করার জন্য প্রচুর হুপ করে যেতে হবে । বিশ্রামের ইন্টারফেসগুলির জন্য এমভিসি হ'ল একটি প্রাকৃতিক ফিট এবং ওয়েস্ট প্রোটোকলগুলি সেগুলি ব্যবহার করার উদ্দেশ্যে রেষ্ট করার চেষ্টা করেছে। এমএস ওয়েবফোর্ডগুলি সেভাবে ডিজাইন করেছিল, এটি ওয়েবের পক্ষে সেরা ফিট নয়,
tvanfosson

117

এমভিসি আপনাকে আপনার আউটপুটকে আরও নিয়ন্ত্রণ দেয় এবং সেই নিয়ন্ত্রণের সাথে খারাপভাবে ডিজাইন করা এইচটিএমএল, ট্যাগ স্যুপ ইত্যাদি লেখার আরও ঝুঁকি আসে ...

তবে একই সাথে, আপনার কাছে আগে ছিল না এমন বেশ কয়েকটি নতুন বিকল্প রয়েছে ...

  1. পৃষ্ঠাতে এবং পৃষ্ঠার উপাদানগুলির উপর আরও নিয়ন্ত্রণ
  2. আপনার আউটপুটে কম "জাঙ্ক", যেমন ভিউস্টেটের মতো বা উপাদানগুলিতে অতিরিক্ত দীর্ঘ আইডি (আমাকে ভুল করবেন না, আমি ভিউস্টেট পছন্দ করি)
  3. জাভাস্ক্রিপ্টের সাথে ক্লায়েন্ট সাইড প্রোগ্রামিং করার আরও ভাল ক্ষমতা (ওয়েব 2.0 অ্যাপ্লিকেশন কারও?)
  4. শুধু এমভিসি নয়, জসনআরসাল্ট হ'ল ...

এখন আর এটি বলার অপেক্ষা রাখে না যে আপনি ওয়েব ফর্মগুলির সাহায্যে এগুলির কোনও কিছুই করতে পারবেন না, তবে এমভিসি এটি আরও সহজ করে তোলে।

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

ওয়েবফর্ম এবং এমভিসি উভয়ই যদি আপনি অসাবধান হন তবে পরম আবর্জনায় সক্ষম are সর্বদা হিসাবে, সাবধানী পরিকল্পনা এবং সুচিন্তিত নকশার ফলে মানসম্পন্ন অ্যাপ্লিকেশনটি এমভিসি বা ওয়েবফোর্মে নির্বিশেষে হবে result

[হালনাগাদ]

যদি এটির কোনও সান্ত্বনা থাকে তবে এমভিসি হ'ল মাইক্রোসফ্ট থেকে একটি নতুন, বিকশিত প্রযুক্তি। অনেকগুলি পোস্টিং রয়েছে যে ওয়েবফর্মগুলি কেবলমাত্র থাকবে না, তবে এর জন্য বিকাশ অব্যাহত থাকবে ...

http://haacked.com

http://www.misfitgeek.com

http://rachelappel.com

... এবং আরও ...

এমভিসি যে রুটটি নিয়েছে সে সম্পর্কে উদ্বিগ্নদের জন্য, আমি "বলছি" আপনার মতামত দেওয়ার পরামর্শ দিচ্ছি। তারা এতক্ষণ শুনছে বলে মনে হচ্ছে!


10
আমার মনে হয় 1 এবং 2 পয়েন্টগুলি ক্রুक्स। বিমূর্ততা হিসাবে ওয়েবফর্মগুলি সত্যই আইএমএইচওকে "সত্যই" কাজ করে না কারণ এটি কোনও বিমূর্ততা নয় যা সত্যিকার অর্থে যা চলছে তার শীর্ষে মানচিত্র। আমি মনে করি এমভিসির সাথে আমার সীমিত অভিজ্ঞতা দেওয়া হওয়ার চেয়ে ওয়েবফর্মগুলির চেয়ে এএসপি.এনইটি এমভিসি একটি ভাল ফিটিং বিমূর্ততা।
ড্যানিয়েল অগর

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

আপডেট HBoss জন্য ধন্যবাদ! আমি এমএসের উপর working বছর কাজ করার পরে ওয়েবফর্মগুলি পরিত্যাগ করতে দেখে ঘৃণা করব।
মার্ক ব্রিটিংহাম

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

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

76

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

এর বাইরে, প্রায় প্রতিটি সমালোচনা ডিফল্ট ভিউগুলিতে এবং এটি "কুরুচিপূর্ণ" কীভাবে <%%> ট্যাগিংয়ে নেমে আসে বলে মনে হয়। এই মতামতটি প্রায়শই ওয়েবফোর্ড পদ্ধতির অভ্যন্তরে ব্যবহৃত হয়, যা বেশিরভাগ ক্লাসিক এএসপি কদর্যতা কোড-পিছনের ফাইলটিতে সরিয়ে দেয়।

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

এএসপি ট্যাগ-স্যুপ চালিত "স্প্যাগেটি" এর সাথে সবচেয়ে বড় সমস্যাটি হ'ল এইচটিএমএল এর মধ্যে ডেটাবেস সংযোগের মতো জিনিসকে ঘেউ ঘেউ করা সম্পর্কে।

<%%> ব্যবহার করে এটি করাটি ক্লাসিক এএসপির স্প্যাগেটি প্রকৃতির সাথে কেবল একটি সম্পর্ক, কারণ নয় not আপনি যদি এইচটিএমএল / সিএসএস / জাভাস্ক্রিপ্ট এবং আপনার উপস্থাপনা করার জন্য প্রয়োজনীয় ন্যূনতম যুক্তি রাখেন তবে বাকী বাক্য গঠন রয়েছে।

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

উপস্থাপনা যুক্তির পুনরাবৃত্তযোগ্য বিটগুলির জন্য আংশিক দর্শনের ন্যায়বিচারের ব্যবহারের সাথে মিলিত হলে, এটি সত্যই সুন্দর এবং মার্জিত হতে পারে।

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

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


1
আমি জানতাম না যে আপনি সহজেই অন্যান্য ভিউ ইঞ্জিনগুলিতে অদলবদল করতে পারেন, আপনি কি সে সম্পর্কে আরও তথ্য সরবরাহ করতে পারেন?
রেডফিল্টার

আমার কাছে কোনও লিঙ্ক সুবিধাজনক নেই তবে ফিল হ্যাক কয়েক সপ্তাহ আগে তাঁর সাইটে একটি নিবন্ধ করেছিলেন যাতে আপনি কীভাবে পাশাপাশি পাশাপাশি তাদের চালাতে পারবেন তা দেখিয়েছেন।
জে Wynia

1
আমেন! আমি Findcontrol ব্যবহার করে ঘৃণা করি। আমি এটাকে অত্যন্ত ঘৃণা করি।
অ্যাডাম লাসেক

3
দুর্দান্ত, ভাল বৃত্তাকার পোস্ট।
ওয়েন

59
<% if (Model.PreviousPost || Model.NextPost) { %>
    <div class="pager">
        <% if (Model.PreviousPost) { %>
            <span><% Html.ActionLink("<< " + Model.PreviousPost.Subject, "view")); %></span>
        <% } if (Model.NextPost) { %>
            <span><% Html.ActionLink(Model.NextPost.Subject + " >>", "view")); %></span>
        <% } %>
    </div>
<% } %>

এম্বেড থাকা সিএসএস না করে কীভাবে এটি করা যায় তা জানতে আপনি অন্য একটি পোস্ট করতে পারেন।

দ্রষ্টব্য: ভিডিডাটা.মোডেল পরবর্তী প্রকাশে মডেল হয়ে যায়।

এবং ব্যবহারকারীর নিয়ন্ত্রণের সাহায্যে এটি হয়ে উঠবে

<% Html.RenderPartial("Pager", Model.PagerData) %>

যেখানে পেজারডাটা অ্যাকশন হ্যান্ডলারের একটি বেনামে নির্মাণকারীর মাধ্যমে আরম্ভ করা হয়।

সম্পাদনা: আপনার ওয়েবফর্ম বাস্তবায়ন এই সমস্যার জন্য দেখতে কেমন তা আমি আগ্রহী।


4
ভাল পোস্ট। ওপি রেন্ডারপার্টিয়ালের মাধ্যমে পুনঃব্যবহারের মতো কিছু কৌশল হারিয়েছে যা তার কোড ক্লিনার করে তুলবে। ওপি'র প্রতিরক্ষায় তিনি ইঙ্গিত দিয়েছিলেন যে তিনি অনুভব করেছেন যে তিনি অবশ্যই কিছু ভুল করছেন।
ড্যানিয়েল অগর

25

আমি নিশ্চিত নই যে লোকেরা তাদের কোড সম্পর্কে যত্ন নেওয়া বন্ধ করে দিয়েছে।

এইচটিএমএল আপনার কাজের সর্বাধিক প্রকাশ্য প্রদর্শন, সেখানে প্রচুর বিকাশকারী রয়েছেন যারা প্রচুর ওয়েবসাইট তৈরির জন্য নোটপ্যাড, নোটপ্যাড ++ এবং অন্যান্য সরল পাঠ্য সম্পাদক ব্যবহার করেন।

এমভিসি ওয়েব ফর্মগুলি থেকে নিয়ন্ত্রণ ফিরে পাওয়া, একটি রাজ্যহীন পরিবেশে কাজ করা এবং মডেল ভিউ কন্ট্রোলার ডিজাইন প্যাটার্নটি প্রায় সমস্ত অতিরিক্ত কাজ না করে যা এই প্যাটার্নটির একটি বাস্তবায়নে সাধারণত ঘটে থাকে তা প্রয়োগ করে implementing

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

আপনি যদি পছন্দ না করেন তবে আপনি অবশ্যই মার্কআপে প্রায় কাজ করছেন।

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


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

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

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

5
আপনি কী করছেন তা যদি আপনি না জানেন তবে আপনি কেবলমাত্র 2 এমবি ভিউস্টেট পাবেন।
ফ্লাইওয়াত

3
আপনি কী করছেন এবং একত্রে কোড নিক্ষেপ করছেন তা আপনি জানেন না এমন সময় আপনি ট্যাগ স্যুপ পান ...
হুগোয়ার

15

আমার মনে হয় আপনি কিছু জিনিস মিস করছেন। প্রথমত, রেসপন্সের দরকার নেই। রাইট, আপনি <%= %>ট্যাগ ব্যবহার করতে পারেন । দ্বিতীয়ত, সাধারণ ক্রিয়াগুলি করতে আপনি নিজের HTML Helper এক্সটেনশন লিখতে পারেন। তৃতীয়ত, কিছুটা ফরম্যাটিং অনেক সহায়তা করে। চতুর্থত, এই সমস্তগুলি সম্ভবত বেশ কয়েকটি ভিন্ন মতামতের মধ্যে ভাগ করে নেওয়ার জন্য একটি ব্যবহারকারী নিয়ন্ত্রণে আটকে থাকবে এবং এইভাবে মূল দৃশ্যে সামগ্রিক চিহ্নটি ক্লিনার।

আমি আপনাকে মঞ্জুরি দেব যে মার্ক আপটি এখনও যেমনটি চান তেমন ঝরঝরে নয়, তবে কিছু অস্থায়ী ভেরিয়েবল ব্যবহারের মাধ্যমে এটি যথেষ্ট পরিমাণে পরিষ্কার করা যেতে পারে।

এখন, এটি এতটা খারাপ নয় এবং এটির জন্যও যদি আমি এটি ফর্ম্যাট না করতে পারি তবে এটি আরও ভাল।

 <%
    var PreviousPost = ViewData.Model.PreviousPost;
    var NextPost = ViewData.Model.NextPost;

    // Display the "Next and Previous" links
    if (PreviousPost != null || NextPost != null)
    {
  %>

 <div>

        <%= PreviousPost == null
                ? string.Empty
                : Html.ActionLinkSpan("<< " + PreviousPost.Subject,
                                "view",
                                new { id = PreviousPost.Id },
                                new { style = "float: left;" } ) %>
          <%= NextPost == null
                ? string.Empty
                : Html.ActionLinkSpan( NextPost.Subject + " >>",
                                   "view",
                                    new { id = NextPost.Id },
                                    new { style = "float: right;" } ) %>

  <div style="clear: both;" />
  </div>

  <% } %>

2
এটি কি এখনও এত অদ্ভুত বলে মনে হচ্ছে না, যদি আমি ওয়েবফর্মগুলিতে একটি <এসপি: হাইপারলিঙ্ক> এর দৃশ্যমানতাটি সেট করতে পারতাম?
ফ্লাইওয়াত

2
না, কারণ এমনকি ওয়েবফর্মগুলিও এত সহজ নয়। আপনাকে সম্ভবত কোডবিহাইডের হাইপারলিঙ্কে কিছু বৈশিষ্ট্য নির্ধারণ করতে হবে কারণ তারা গতিশীল, আপনার এখনও ডিআইভি / স্প্যান কোড প্রয়োজন, তবে আপনি এটি কোনও পদ্ধতিতে রোল করতে পারবেন না। এবং এর কোনওটিই পরীক্ষাযোগ্য হবে না।
tvanfosson

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

1
আমাকে নেভিগেটআরল এবং দৃশ্যমানতা সেট করতে হবে। এটি পৃষ্ঠা_লোড ইভেন্টের 2 লাইন হবে।
ফ্লাইওয়াত

2
আমি মনে করি এটি সত্য যে আপনি রেলপথে এটি করছিলেন। শেষবার আমি এটি করেছি ক্লাসিক এএসপি, এটি ঘৃণা করার অন্যান্য অনেক কারণ রয়েছে। সম্ভবত আমার কেবলমাত্র <%%> ট্যাগগুলির আমার প্রাথমিক গ্যাগ রিফ্লেক্স পুনর্বিবেচনাটি অর্জন করতে হবে।
ফ্লাইওয়াত

14

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

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

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

মাইক্রোসফ্ট সিদ্ধান্ত নিয়েছে যে ওয়েব ফর্মগুলি পরবর্তী ভিবি 6 হবে না।


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

এটি উল্লেখ করার আকর্ষণীয় উপায় ... ভাল পয়েন্ট
হুগোয়ারে

এইচএএমএল এফটিডব্লু, বিশেষত যদি এমভিসির প্রতি আপনার একমাত্র আপত্তি হ'ল <%%> এর হয়
পিটার পুনরুদ্ধার করুন


9

ওয়েব ফর্মগুলির উপরে ASP.NET এমভিসি কাঠামোর দুটি প্রধান সুবিধা হ'ল:

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

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

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


8

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

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

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


আমি কারণ আমি কোন ধারণা কিভাবে আমি এখনো মোকাবেলা করার যে এক :) যাচ্ছি হবে তা হচ্ছে আপনার পেজিং বাস্তবায়ন দেখতে চাই
DTC

আমি এখান থেকে পেজিং সহায়কদের পেয়েছি। আপনি এখানে নমুনা প্রকল্পটি ডাউনলোড করতে পারেন: ব্লগস.টিগা.এনএল
পাপা

যে কোনও কিছুর মতোই এখানে একটি শেখার বক্ররেখা রয়েছে। নির্দিষ্ট অঞ্চলের কাজ কতটা উন্নত তা নিয়ে আপনি আনন্দের সাথে অবাক হতে পারেন। যদিও আমি মিথ্যা বলব না - সার্ভার কন্ট্রোলস এবং ভিউস্টেটের মতো কিছু বিলাসিতা অবশ্যই মিস হয়েছে। আমি <এসপি: টেক্সটবি ... টাইপ করেছি এবং তখন বুঝতে পারলাম ... ওফ !!
হুগোয়ারে

এখানে একটি সৎ প্রশ্ন। আপনার যদি এইচটিএমএল "সহায়ক" ক্লাসগুলির প্রয়োজন হয়, আপনি কি সত্যিই এমভিসি মডেল লঙ্ঘন করেন নি? আপনি যে সরলতা ও কমনীয়তা বিক্রি করছেন তা পিছনে রেখে যাচ্ছেন না? যদি আমি ভুল হয়ে থাকি (এবং আমি হতে পারি!) দয়া করে কেন বলুন।
মার্ক ব্রিটিংহ্যাম

1
আমি মনে করি না যে আপনাকে এমভিসিতে "স্যুইচ" করতে হবে। প্রকল্পের উপর নির্ভর করে আমি এখনও ওয়েব ফোরাম ব্যবহার করি।
হুগোয়ারে

8

এটি মজার কারণ কারণ আমি যখন প্রথম ওয়েবফর্মগুলি দেখেছিলাম তখনই আমি বলেছিলাম।


সিরিয়াসলি , এটি সত্যিই ছিল। ওয়েব ফোরামগুলি, যে সময় আমাদের কাছে এনেছিল তা প্রসঙ্গে না জেনে কিছু বোঝায় না। এটি ওয়েবে আলিঙ্গন করে না তবে এটি আড়াল করার চেষ্টা করে এবং এটি একটি খুব খারাপ বিমূর্ততা।
জেসন বুটিং

6

আমি স্বীকার করব যে আমি এখনও asp.net এমভিসি পাই না। আমি এটির একটি পার্শ্ব প্রকল্পে এটি ব্যবহার করার চেষ্টা করছি তবে এটি বেশ ধীর গতিতে চলছে।

ওয়েব ফর্মগুলিতে এমন কাজ করা সহজ না হওয়া ছাড়াও আমি ট্যাগ স্যুপটি লক্ষ্য করি। এটি সত্য যে দৃষ্টিকোণ থেকে পিছনে একটি পদক্ষেপ নিতে বলে মনে হচ্ছে। আমি আশা রাখি যে আমি যত শিখছি তা আরও ভাল হবে।

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

আমার ব্রাউজারগুলিতে যতক্ষণ না এটি কার্যকর হয় ততক্ষণ আমি সত্যিই তার যত্নশীল না, তবে আমার পৃষ্ঠাগুলি কত দ্রুত লোড হয় এবং কতটা ব্যান্ডউইথ নেয় তা আমি যত্নশীল do


6

যদিও আমি সম্পূর্ণরূপে একমত যে এটি কুৎসিত মার্কআপ, তবুও আমি মনে করি যে সম্পূর্ণরূপে ASP.NET MVC লিখে রাখার জন্য কুৎসিত ভিউ সিনট্যাক্সটি ব্যবহার করা মোটামুটি উপযুক্ত নয়। ভিউ সিনট্যাক্সটি মাইক্রোসফ্টের কাছ থেকে ন্যূনতম মনোযোগ পেয়েছে এবং শিগগিরই এ সম্পর্কে কিছু করা হবে বলে আমি সম্পূর্ণ প্রত্যাশা করছি।

অন্যান্য উত্তরগুলি সামগ্রিকভাবে এমভিসির সুবিধাগুলি নিয়ে আলোচনা করেছে, তাই আমি ভিউ সিনট্যাক্সটিতে ফোকাস করব:

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

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

<span mvc:if="ViewData.Model.ShowPrevious" style="float: left;">
    <a mvc:inner="ViewData.Model.PreviousPost.Subject" href="view/{ViewData.Model.PreviousPost.Id}">sample previous subject</a>
</span> 
<span mvc:if="ViewData.Model.ShowNext" style="float: left;">
    <a mvc:inner="ViewData.Model.NextPost.Subject" href="view/{ViewData.Model.NextPost.Id}">sample next subject</a>
</span> 
<div mvc:if="ViewData.Model.ShowNextOrPrevious" style="clear: both;" />

এর বিভিন্ন সুবিধা রয়েছে:

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

সুতরাং, এই বাক্য গঠনটি ঠিক কী করে?

এমভিসি: ইনার = "" - কোটগুলির মধ্যে যা আছে তা মূল্যায়ন হয়ে যায় এবং ট্যাগের অভ্যন্তরীণ এইচটিএমএল ফলাফলের স্ট্রিংয়ের সাথে প্রতিস্থাপিত হয়। (আমাদের নমুনা পাঠ্য প্রতিস্থাপন করা হয়)

এমভিসি: বহিরাগত = "" - উক্তিগুলির মধ্যে যা আছে তা মূল্যায়ন হয় এবং ট্যাগটির বাইরের এইচটিএমএল ফলাফলের স্ট্রিংয়ের সাথে প্রতিস্থাপিত হয়। (আবার, নমুনা পাঠ্য প্রতিস্থাপন করা হয়।)

{} - এটি <% =%> এর মতো বৈশিষ্ট্যের ভিতরে আউটপুট সন্নিবেশ করানোর জন্য ব্যবহৃত হয়

এমভিসি: if = "" - কোয়েডস ইনসেট হ'ল বুলিয়ান এক্সপ্রেশন au যদি এইচটিএমএল ট্যাগ বন্ধ হয়ে যায় তবে ইফের সমাপ্তি।

MVC: অন্য

mcv: elseif = "" - ...

MVC: foreach


1
আপনি নিজের দেখার ইঞ্জিন হিসাবে বর্ণনা করছেন ঠিক তেমন কার্যকরভাবে প্রয়োগ করতে এবং ওয়েবফোর্ড সমাধান পুরোপুরি খনন করতে পারেন।
জে ওয়িনিয়া

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

তথ্যের জন্য ধন্যবাদ, অন্যান্য ভিউ ইঞ্জিনগুলি সচেতন ছিল না।
রেডফিল্টার

জেনশি একই রকম পদ্ধতির সাথে জনপ্রিয় পাইথন টেম্প্লেটিং ইঞ্জিন, আপনি আরও অনুপ্রেরণার জন্য এটি দেখতে পারেন: Genshi.edgewall.org/wiki/…
অরিপ

তবে কেউ এক্সএসএল পছন্দ করেনি তাই আপনি কীভাবে এটিকে গৃহীত হতে পারেন বলে আশা করেন?
ববিশ্যাফটো

4

এখন, আমি এখানে কেবল নিজের জন্য কথা বলতে পারি:

আইএমও, আপনি যদি ডাই-হার্ড (যে কোনও কিছু) হন তবে রূপান্তরটি আপনার জন্য নয়। আপনি যদি ওয়েবফর্মগুলি পছন্দ করেন তবে এটি আপনার প্রয়োজন অনুসারে করতে পারেন এবং এটি যে কোনওটির লক্ষ্য।

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

এখনই হিসাবে, এএসপি.নেট এমভিসি তৃতীয় পক্ষের নিয়ন্ত্রণের ক্ষেত্রে খুব সীমাবদ্ধ। আবার, আপনি যদি র‌্যাপিড অ্যাপ্লিকেশন বিকাশ পছন্দ করেন, যেখানে আপনার জন্য প্রচুর কার্যকারিতা সজ্জিত করা হয়, আপনার রূপান্তর করার চেষ্টা করা উচিত নয়।

এই সমস্ত কথার সাথে, এএসপি.এনইটি জ্বলজ্বল করে: - টিডিডি। কোড পরীক্ষণযোগ্য নয়, নফ বলেছিলেন।

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

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

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

  • ওয়েব "ডিজাইনের" বর্তমান অবস্থা: জাভাস্ক্রিপ্ট লাইব্রেরি jQuery এর মতো আরও সাধারণ হয়ে উঠছে। ওয়েব ফর্মগুলি যেভাবে আপনার আইডিগুলিকে ম্যাঙ্গেল করে কেবল প্রয়োগ (ভিজ্যুয়াল স্টুডিওর বাইরে) আরও জটিল করে তোলে।

  • আরও বিচ্ছেদ (নকশা): যেহেতু অনেকগুলি নকশা আপনার নিয়ন্ত্রণে সজ্জিত, কোনও বাইরের ফর্ম প্রকল্পে বাইরের ডিজাইনারের (ওয়েব ফর্ম ব্যতীত) জ্ঞানের পক্ষে কাজ করা খুব কঠিন। ওয়েব ফর্মগুলি সব শেষ হওয়ার জন্য তৈরি হয়েছিল।

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

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

মূলত, উভয় পক্ষের পক্ষে (পক্ষপাতদুষ্ট উত্স [সৌভাগ্য] খুঁজে বের করার চেষ্টা করুন) এর পক্ষে ভাল এবং কনসের তালিকা সহ দ্রুত পর্যালোচনা করুন, কোনটি আপনার লক্ষ্যগুলির সাথে খাপ খায় এবং তা ভিত্তিতে বেছে নিন ate

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


3

জাভা ইই এর জেএসপিগুলি যখন প্রথম প্রস্তাব করা হয়েছিল তখন এটির মতো দেখাচ্ছিল - কুরুচিপূর্ণ স্ক্রিপ্টলেট কোড।

তারপরে তারা ট্যাগ লাইব্রেরিগুলিকে আরও HTML এইচটিএমএল ট্যাগ-ইশ তৈরি করতে অফার করেছিলেন। সমস্যাটি ছিল যে কেউ ট্যাগ লাইব্রেরি লিখতে পারে। কিছু ফলাফল বিপর্যয়কর ছিল, কারণ মানুষ এইচটিএমএল তৈরি করে এমন অনেক লজিক (এবং এমনকি শৈলী) এম্বেড করেছিল।

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

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

.NET এর জেএসটিএলের মতো পথ থাকলে, আমি তাদের পরামর্শ দেওয়ার পরামর্শ দিই।


+1 - আরও যদি আমি দিতে পারি। হ্যাঁ ... জাভা এই রাস্তায় নেমে গেছে অনেক আগে। অদ্ভুত অংশটি হ'ল জাভা কিছু এমভিসি স্টাইলের ফ্রেমওয়ার্কও দেখেছিল যা জেএসএফ এবং টেপস্ট্রি এর মতো উপাদানগুলিতেও বোল্ট করে। এমভিসি একটি ওয়েব অ্যাপ্লিকেশন আইএমএইচও-র একমাত্র বুদ্ধিমান আর্কিটেকচার সম্পর্কে। আমি ফ্রেমওয়ার্কের সাথে গরুর মাংস আপনাকে এটির আরও গভীর ধারণা পেতে বাধা দেব না। কাঠামোটি বিকশিত হবে।
cwash

3

কেবল ভেবেছি আমি কীভাবে এই নমুনাটি চকচকে নতুন রেজার ভিউ ইঞ্জিনের সাথে দেখায় যা এএসপি। নেট এমভিসি 3 এর পরে ডিফল্ট।

@{ 
    var prevPost = ViewData.Model.PreviousPost;
    var nextPost = ViewData.Model.NextPost;
}

@if (prevPost != null || nextPost != null) {
    <div>
        @if (prevPost != null) {
            <span style="float: left;">
                @Html.ActionLink("<< " + prevPost.Subject, "view", new { id = prevPost.Id })
            </span>
        }
        @if (nextPost != null) {
            <span style="float: left;">
                @Html.ActionLink(nextPost.Subject + " >>", "view", new { id = nextPost.Id })
            </span>
        }
        <div style="clear: both;" />
    </div>
}

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

<div>
    @if (prevPost != null) {
        @Html.ActionLink("<< " + prevPost.Subject, "view",
            new { id = prevPost.Id, @class = "prev-link" })
    }
    @if (nextPost != null) {
        @Html.ActionLink(nextPost.Subject + " >>", "view",
            new { id = nextPost.Id, @class = "next-link" })
    }
    <div class="clear" />
</div>

2

আমি সরাসরি এএসপি.নেট এমভিসি প্রকল্পের সাথে কথা বলতে পারি না, তবে সাধারণত এমভিসি ফ্রেমওয়ার্কগুলি ওয়েব অ্যাপ্লিকেশন বিকাশকে প্রভাবিত করতে পারে কারণ

  1. তারা ডাটাবেস অপারেশনস, "বিজনেস লজিক" এবং উপস্থাপনার মধ্যে একটি আনুষ্ঠানিক বিচ্ছেদ প্রস্তাব করে

  2. বিকাশকারীদের তাদের এইচটিএমএল / সিএসএস / জাভাস্ক্রিপ্টকে একাধিক ব্রাউজারে কাজ করার অনুমতি দিতে এবং সেই ব্রাউজারগুলির ভবিষ্যতের সংস্করণগুলিকে সামঞ্জস্য করার মঞ্জুরিতে তারা যথেষ্ট নমনীয়তার প্রস্তাব দেয়

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

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

সুতরাং, এটি বাণিজ্য বন্ধ। যদি ওয়েবফর্মগুলি আপনার পক্ষে কাজ করে এবং এমভিসি না হয়, তবে ওয়েবফর্মগুলি ব্যবহার করা চালিয়ে যান


1
"আপনার জন্য আপনার এইচটিএমএল / সিএসএস / জাভাস্ক্রিপ্ট লেখার জন্য আপনি আপনার বিক্রেতার উপর নির্ভর করছেন" থ্যাজে বাজে কথা। প্রত্যেকে কি প্রাক বিল্ট নিয়ন্ত্রণ ব্যবহার করে? আমাদের কখনই নেই।
ফ্লাইওয়াত

1
পয়েন্ট 1 পাশাপাশি বাজে কথা se আমি আর্কিটেক্ট করেছি প্রতিটি অ্যাপ্লিকেশন দৃ .়ভাবে পৃথক করা হয়েছে, দেখার জন্য কেবল বাধ্যতামূলক যুক্তির পিছনে কোড রয়েছে। তেহ কোডবিহেনডে ইভেন্ট হ্যান্ডলারগুলি কেবল ব্যবসায়ের স্তরে উপযুক্ত পদ্ধতিগুলি বলে।
ফ্লাইওয়াত

1
জনের মতো আমি বলেছিলাম, যদি ওয়েবফর্মগুলি আপনার পক্ষে কাজ করে এবং আপনার দোকানের নিজস্ব নিয়ন্ত্রণ বিকাশের সময় থাকে তবে তা চালিয়ে যান।
অ্যালান ঝড় 2

1
@ ফ্লাইওয়াত - আপনি কখনও ড্রপডাউনলিস্ট বা ডেটাগ্রিড ব্যবহার করেন নি?
সাইমন_উইভার

2

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

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

আমি সম্ভবত এটি ঠিক মতো করব না তবে এখানে আপনার উদাহরণ:

<if condition="myDtp.ShowPager">
  <div>
    <first />
    <last />
    <div style="clear: both;" />
  </div>
</if>

এটি বেশ রক্ষণাবেক্ষণযোগ্য, পরীক্ষামূলক এবং আমার কোড স্যুপে মুখরোচক।

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


2

স্টিভ স্যান্ডারসনের সম্প্রতি প্রকাশিত বই 'প্রো এএসপি.নেট এমভিসি' [১] [২] অ্যাপ্রিসের আরেকটি বিকল্পের পরামর্শ দিয়েছে - একটি কাস্টম এইচটিএমএল হেল্পার এক্সটেনশন তৈরি করা। তার নমুনা (110 পৃষ্ঠায় অধ্যায় 4 থেকে) পেজড তালিকার উদাহরণ ব্যবহার করে তবে এটি আপনার পরিস্থিতির জন্য সহজেই মানিয়ে নেওয়া যায়।

public static string PostNavigator(this HtmlHelper html, Post previous, Post next, Func<int, string> pageUrl)
{
    StringBuilder result = new StringBuilder();

    if (previous != null || next != null)
    {
        result.Append("<div>");

        if (previous != null)
        {
            result.Append(@"<span class=""left"">");
            TagBuilder link = new TagBuilder("a");
            link.MergeAttribute("href", pageUrl(previous.Id));
            link.InnerHtml = String.Format("<< {0}", html.Encode(previous.Subject));
            result.Append(link.ToString());
            result.Append("</span>");
        }

        if (next != null)
        {
            if (previous != null)
            {
                result.Append(" ");
            }

            result.Append(@"<span class=""right"">");
            TagBuilder link = new TagBuilder("a");
            link.MergeAttribute("href", pageUrl(next.Id));
            link.InnerHtml = String.Format("{0} >>", html.Encode(next.Subject));
            result.Append(link.ToString());
            result.Append("</span>");
        }

        result.Append("</div>");
    }

    return result.ToString();
}

আপনি কোডটিকে আপনার দৃষ্টিতে এরকম কিছু দিয়ে ডাকবেন:

<%= Html.PostNavigator(ViewData.Model.PreviousPost, ViewData.Model.NextPost, id => Url.Action("View", new { postId = id })) %>

[1] http://blog.codeville.net/2009/04/29/now-published-pro-aspnet-mvc-framework-apress/

[2] http://books.google.com/books?id=Xb3a1xTSfZgC


2
বাহ, কোডে ভয়াবহ মার্কআপ চালায় ... ব্লেক lec
ফ্লাইওয়াত

যদি কোনও 'পোস্টনাভিগেটর' কোনও মার্কআপের সাথে পুনরায় ব্যবহারযোগ্য উইজেট (বা আপনি করতে পারেন ওয়েবকন্ট্রোল) যা পরিবর্তিত হয় না, এবং এটি সিএসএস বিধি দ্বারা স্টাইলযুক্ত - এটি কীভাবে এই ভয়ঙ্কর সমাধান?

@ গুয়আইগনগনিটো: সম্মত, এটি একটি ওয়েবকন্ট্রোল এবং একটি পরিষ্কার সমাধানের সাথে সাদৃশ্য বলে মনে হচ্ছে। কিছু সময়ে, আপনাকে এইচটিএমএল স্ট্রিং তৈরি করতে হবে। এর মতো একটি এক্সটেনশন পদ্ধতি একটি ভাল সমাধান।
gbc

1

আমি ফিল হ্যাকের একটি পোস্ট দেখার আশাবাদী ছিলাম তবে এটি এখানে ছিল না তাই আমি কেবল এটি http://blog.wekeroad.com/blog/i-spose-ill-just-say-it-you-should থেকে কেটে পেস্ট করেছি -লেয়ার্ন-এমভিসি / মন্তব্য বিভাগে

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


1

আমিও; আমি আমার সময়টি এএসপি.নেট এমভিসির চেয়ে সিলভারলাইটে ব্যয় করব। আমি এমভিসি 1.0 চেষ্টা করেছি এবং কিছুদিন আগে সর্বশেষ 2.0 বিটা 1 রিলিজটি দেখেছি।

আমি বুঝতে পারি না যে এএসপি.এনইটি এমভিসি কীভাবে ওয়েবফর্মের চেয়ে ভাল। এমভিসির বিক্রয় কেন্দ্র হ'ল:

  1. ইউনিট পরীক্ষা)
  2. নকশা (দেখুন) এবং যুক্তি (নিয়ন্ত্রক + মডেল) পৃথক করুন
  3. কোনও ভিউসেট এবং উন্নত উপাদান আইডি পরিচালনা নেই
  4. বিশ্রামের ইউআরএল এবং আরও অনেক কিছু ...

তবে ওয়েবফর্ম, কোড-ব্যাকড ব্যবহার করে me থিম, স্কিন এবং রিসোর্স ডিজাইন এবং যুক্তি আলাদা করার জন্য ইতিমধ্যে নিখুঁত।

ভিউস্টেট: ক্লায়েন্ট আইডি পরিচালনা এএসপি.নেট 4.0 এ আসছে। আমি কেবল ইউনিট পরীক্ষাগুলি নিয়েই উদ্বিগ্ন, তবে ইউনিট পরীক্ষাগুলি ওয়েবফর্ম থেকে আমাকে এএসপি.নেট এমভিসিতে পরিণত করার কারণ হিসাবে যথেষ্ট নয়।

হয়তো আমি বলতে পারি: এএসপি.নেট এমভিসি খারাপ নয়, তবে ওয়েবফর্মটি ইতিমধ্যে যথেষ্ট।


-1

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

এএসপি. নেট এমভিসির বৃহত্তম বিক্রয় পয়েন্ট - স্ট্যাকওভারফ্লো এমভিসি স্ট্যাকের উপরে চলে।

বলা হচ্ছে ... আপনার কোডটি আমি ভিউ পৃষ্ঠাতে সাধারণত যা করি তার থেকে অনেক সুন্দর is এছাড়াও, আমি যাদের সাথে কাজ করি তাদের মধ্যে একজন এইচটিএমএল সহায়ককে ট্যাগ লাইব্রেরিতে মোড়ানোর কাজ করে। <% = Html.RandomFunctionHere ()%> এর পরিবর্তে এটি কাজ করে

<এইচএইচ: এলোমেলো কাজ />

আমি কেবল আশা করি এমভিসি দলটি কোনও সময়ে এটির কাছাকাছি চলেছে কারণ আমি নিশ্চিত যে তারা এটির আরও ভাল কাজ করবে।


1
"... আমি যাদের সাথে কাজ করি তাদের মধ্যে একজন এইচটিএমএল সহায়ককে একটি ট্যাগ লাইব্রেরিতে মোড়ানোর কাজ করে চলেছে <<% = এইচটিএমএল.র্যান্ডম ফাংশন এখানে ()%> এর পরিবর্তে এটি <hh: randomfunction />" এর মতো কাজ করে "এটি ঠিক এটি - একটি "র্যান্ডমফিউশনহির ()" পদ্ধতিতে কল কেবল এটি - একটি পদ্ধতি কল। এটি মার্কআপ নয়, এবং কোনও ট্যাগের মতো দেখায় এমন সত্যকে বিমূর্ত করা আমার কাছে মনে হচ্ছে বিন্দুটি অনুপস্থিত। যদি আমি এই কোডটির দিকে তাকিয়ে কোনও বিকাশকারী হয়ে থাকি তবে আমি এটিকে কিছু কাস্টম ট্যাগের চেয়ে বরং একটি পদ্ধতি হিসাবে দেখতে চাই ...
জেসন বুটিং

-2

আপনাকে যে সমস্ত ডেটা প্রদর্শন করতে হবে তার জন্য সমস্ত যুক্তি মোড়ানোর জন্য একটি ফ্যাসেড প্যাটার্ন ব্যবহার করুন এবং তারপরে আপনার দৃষ্টিতে এটি আপনার জেনেরিক হিসাবে ব্যবহার করুন এবং তারপরে .... আর কোনও স্প্যাগেটি কোড নেই। http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

আপনার যদি আরও সহায়তার প্রয়োজন হয় cgardner2020@gmail.com


-17

বাস্তবায়ন এএসপি.এনইটি এমভিসি ভয়ঙ্কর। পণ্য সরল স্তন্যপান। আমি এর বেশ কয়েকটি ডেমো দেখেছি এবং এমএসএফটি নিয়ে আমি লজ্জা পেয়েছি ... আমি নিশ্চিত যে যে ছেলেরা এটি লিখেছিল তারা আমার চেয়ে বেশি স্মার্ট, তবে এটি প্রায় জেনে গেছে মডেল-ভিউ-কন্ট্রোলার কী তা তারা জানেন না ।

কেবলমাত্র আমি জানি যারা এমভিসি বাস্তবায়নের চেষ্টা করছেন তারা হলেন এমএসএফটি থেকে নতুন জিনিস চেষ্টা করা লোক। আমি যে ডেমো দেখেছি, তাতে উপস্থাপকের কাছে একটি ক্ষমা চাওয়া সুর ছিল ...

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

সম্পাদনা করুন:

মডেল-ভিউ-কন্ট্রোলার আর্কিটেকচারাল ডিজাইন প্যাটার্নের উদ্দেশ্যটি হল আপনার ডোমেনটিকে ব্যবসায়ের নিয়ম থেকে উপস্থাপনা থেকে আলাদা করা। আমি প্রয়োগ করেছি প্রতিটি ওয়েব ফর্ম প্রকল্পে সফলভাবে প্যাটার্নটি ব্যবহার করেছি। এএসপি.এনইটি এমভিসি পণ্য প্রকৃত আর্কিটেকচারাল ডিজাইনের ধরণে নিজেকে ভাল ধার দেয় না।


3
সাইটের উপর নির্ভর করে, এমভিসি অনেকগুলি অতিরিক্ত লেগওয়ার্ক ছাড়াই বাক্সের বাইরে খুব শক্তিশালী একটি সরঞ্জাম। আমার জন্য, আমি আমার মার্কআপটির নিয়ন্ত্রণ ব্যাক পেতে কেবল ব্যবহার করছি, ওয়েব ফর্মগুলি একটি সাধারণ ওয়েবসাইটের মার্কআপে যে ঘৃণা করতে পারে তা কেবল ... পাগল।
টম অ্যান্ডারসন

আমি বলতে চাই যে এমভিসি আসলে এটি বেশ ভাল, যেহেতু এটি এএসপি.এনইটি-র ছাঁচে ফিট হচ্ছে যা ওয়েবফোর্মের পক্ষে রয়েছে ...
হুগোয়ার

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

4
আমি ভ্যানিলাতে চকোলেট পছন্দ করি এবং পছন্দ করি। কেউ আমার সাথে এ নিয়ে তর্ক করতে চান?
জেসন বুটিং

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