রেজার সিনট্যাক্সগুলি কি ইউআই মার্কআপে একটি আকর্ষণীয় সুবিধা সরবরাহ করে?


88

আমি স্কট Guthrie শুরু বিজ্ঞপ্তি রাজো উল্লেখ একটি ন্যায্য বিট তার ব্লগে কিন্তু আমি শুধু নই যে নিশ্চিত এটি আমার স্টাইল জন্য আপনি সুযোগ্য আছে।

মঞ্জুর, এটি এএসপি. নেট মার্কআপের (স্ট্যান্ডার্ড প্লেস হোল্ডার এবং ইনলাইন কোড) "স্ট্যান্ডার্ড" সাজানোর ক্ষেত্রে বেশ ব্যবহার করে এমন ব্যক্তির পক্ষে এটি মোটামুটি অপরিচিত শৈলী, তবে এটি পরিচালনা করার জন্য অনেক অতিরিক্ত পৃষ্ঠা এবং আমার কাছে কম পরিষ্কার মার্কআপের মতো মনে হয়।

এটি সম্পর্কে অন্যান্য মানুষের অনুভূতিগুলি কী? নতুন এমভিসি পৃষ্ঠাগুলি ভাসিয়ে দেওয়ার সময় আপনি কী বিশ্বাস করেন যে এটি গুরুত্ব সহকারে বিবেচনা করা উচিত বা এটি কেবল অস্তিত্বহীন কোনও সমস্যা সমাধানের চেষ্টা করছেন?


4
আমি আসলে ভেবেছিলাম যে নিয়মিত ভিউ ইঞ্জিনের সাথে পরিচিত তার জন্য সিনট্যাক্সটি সহজ। আপনি কেবল <% এর পরিবর্তে @ ব্যবহার করেন এবং আপনার কোড ন্যাজেট বন্ধ করবেন না ...
জ্যাকো প্রিটোরিয়াস

আপনি এই রূপান্তরকারী চেষ্টা করতে পারেন । আরও তথ্যের জন্য এই ব্লগ পোস্ট চেক করুন ।
জর্জি কে

উত্তর:


153

[অস্বীকৃতি: আমি এমভিসি এবং রেজারের মাইক্রোসফ্ট বিকাশকারীদের একজন, সুতরাং আমি কিছুটা পক্ষপাতদুষ্ট হতে পারি :)]

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

উদাহরণস্বরূপ, এএসপিএক্স সিনট্যাক্সে নিম্নলিখিত কোড স্নিপেট:

<% if(someCondition) { %>
  <ol>
  <% foreach(var item in Model) { %>
     <li><%: item.ToString() %></li>
  <% } %>
  </ol>
<% } %>

রেজারে নিম্নলিখিত হিসাবে প্রকাশ করা যেতে পারে:

@if(someCondition) {
   <ol>
   @foreach(var item in Model) {
      <li>@item.ToString()</li>
   }
   </ol>
}

যদিও এএসপিএক্স সংস্করণটিতে 21 টি রূপান্তর অক্ষর রয়েছে ( <%এবং %>), রেজার সংস্করণটিতে কেবল তিনটি ( @) রয়েছে

আমি বলব যে রেজারের সুবিধাগুলি নিম্নরূপ:

  1. সংক্ষিপ্ত বাক্য গঠন, যা আপনি নিয়মিত সি # কোড লেখার সাথে একেবারে অনুরূপ (ফিল হ্যাকের নীচের সাম্প্রতিক ব্লগ পোস্টটিকে রেজার সিনট্যাক্সের সাথে তুলনা করে: http://haacked.com/archive/2011/01/06/razor- সিনট্যাক্স-কুইক-রেফারেন্স.এএসপিএক্স )
  2. আউটপুটটির স্বয়ংক্রিয় এইচটিএমএল এনকোডিং (যা আপনাকে এইচটিএমএল ইনজেকশন আক্রমণ থেকে রক্ষা করতে সহায়তা করে)
  3. আপনার মার্কআপের বৈধতার (যদিও 100% নয়) অন্তর্নির্মিত যা আপনাকে ভারসাম্যহীন ট্যাগগুলি এড়াতে সহায়তা করে

পৃষ্ঠা-সম্পর্কিত ধারণাগুলি এএসপিএক্সে থাকা যা থেকে সহজে ম্যাপ করে

  • আপনি দেখতে পাচ্ছেন যে ইনলাইন কোডটি এখনও অনুমোদিত
  • বিভাগগুলি (যা alচ্ছিক হতে পারে) সামগ্রী স্থানধারকের সমতুল্য
  • মাস্টার পৃষ্ঠাগুলির পরিবর্তে লেআউট পৃষ্ঠাগুলি
  • সম্পূর্ণ এবং আংশিক দর্শনগুলির ধারণাগুলি একই
  • @functions { ... } পরিবর্তে ব্লক <script runat="server"> ... </script>

তবুও রেজারের বেশ কয়েকটি দরকারী ধারণা রয়েছে যা আমি বলব এএসপিএক্সের চেয়ে আরও ভাল ধারণা:

  • @helper মার্কআপ নিঃসৃত ফাংশনগুলির সত্যই সহজ গঠনের জন্য ফাংশন
  • @model<%@ Page ...পূর্ণ শ্রেণীর নাম সহ কোনও নির্দেশনা না লিখেই আপনার দর্শনের মডেল প্রকার নির্দিষ্ট করার জন্য কীওয়ার্ড

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

অবশ্যই, সবাই সিনট্যাক্সকে পছন্দ করবে না তাই আমরা এএসপিএক্স ভিউ ইঞ্জিনকে পুরোপুরি সমর্থন করছি। এছাড়াও আপনি স্পার্ক এবং এনএইচএএমএল পরীক্ষা করতে পারেন, এটি দুটি তৃতীয় পক্ষের ভিউ ইঞ্জিন যা উল্লেখযোগ্য সম্প্রদায় অনুসরণ করে enjoy নিম্নলিখিত ব্লগ পোস্টে বিভিন্ন অফারগুলির একটি ভাল তুলনা রয়েছে: http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx


@ মার্কিন্ড, সম্পূর্ণ অফ-টপিক তবে relaxedUrlToFileSystemMappingনতুন ওয়েব পৃষ্ঠাগুলি দিয়ে কীভাবে কাজ করা যায় সে সম্পর্কে কোনও ধারণা । এটি এমভিসি ২.০-তে যথাযথভাবে কাজ করার সময়, "এমভিসি 3.0-তে একটি ইউআরএল থাকা অবধি সর্বদা পথ ব্যতিক্রমে অবৈধ অক্ষরকে ছুঁড়ে দেয়।
দারিন দিমিত্রভ

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

4
হারুন, আপনি রেজার এবং অ্যাসপেক্সকে একসাথে মেশাতে এবং মিলাতে পারেন তাই আপনি যদি চান যে আপনি একবারে আপনার প্রকল্পটিকে একটি পৃষ্ঠায় রূপান্তর করতে পারেন (একমাত্র ক্ষতি হ'ল আপনাকে রেজার ফর্ম্যাটে আপনার মাস্টার পৃষ্ঠাগুলি নকল করতে হবে কারণ একটি রেজার ভিউ থাকার কারণে এটি ব্যবহার করতে পারে এসপিএক্স মাস্টার পৃষ্ঠা সমর্থিত নয়)

4
আপনি কীভাবে আপনার এইচটিএমএলে একটি @ সাইন রাখবেন? যেমন <a href="mailto:john@aol.com">?
ক্রিস এস

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

3

ব্যক্তিগতভাবে আমি কয়টি পালানোর অক্ষর ব্যবহৃত হয় তা হ্রাসের প্রশংসা করি। ব্যবহারের <% %>তুলনা করা খুব ক্লান্তিকর হয়ে ওঠে @{}এবং সিন্টেক্সিকভাবে প্রায় আকর্ষণীয় নয়।

তদুপরি, কোডবিহীন এবং পৃষ্ঠার জন্য একটি সম্পূর্ণ সংজ্ঞা লিখতে একটি একক সরল করা হয়েছে @model model

যেমন মারকিন্ড দ্বারা উল্লিখিত, সর্বদা অন্তর্ভুক্ত না runat=serverকরাও খুব সুন্দর।

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

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