co asp.net mvc umí a ruby on rails nemůže?
<p>asp.net mvc a rails) mají podobnou oblast použití, jsou postaveny na stejné architektuře, oba rámce jsou relativně nové a otevřené zdroje.</p><p>jako programátor rails) bych rád věděl, co dokáže asp.net mvc a ruby on rails nemůže, a naopak?</p>
<p>vyvinul jsem skutečné aplikace s oběma rails a asp.net mvc), ale tato odpověď přichází se značnou výzvou: naučil jsem se a vyvíjel se s předběžnou verzí 2 rails, takže je zcela možné, že jsem jsem nesmírně zastaralý díky mým znalostem rails).</p><p>jak už bylo řečeno, nemyslím si, že existuje <em> cokoli </em>, které lze s jedním, ale ne s druhým. vzhledem k jakémukoli souboru požadavků na webovou aplikaci byste měli být schopni sestavit tuto aplikaci - pravděpodobně stejně efektivně - pomocí rails nebo asp.net mvc).</p><p>existuje několik úhledných věcí, které - podle mého nejlepšího vědomí - jsou k dispozici v asp.net mvc hlavně kvůli aspektům c # /. net. například: když mám stránku, která obsahuje odeslaný formulář, mám akci, která zkontroluje, zda se jedná o get, nebo post), abych rozhodla, co dělat:</p><pre><code>def edit @item = item.find(params[:id]) if request.post? @item.update\_attributes(params[:item]) redirect\_to :action =&gt; 'edit', :id =&gt; @item.id end end </code></pre><p>toto je triviální příklad, ale <code>if request.post?</code> vzor je v rails velmi běžný. v netriviálních případech může být kód akce velký a chaotický a často bych si přál, abych ho mohl čistě promítnout do samostatných metod. v asp.net mvc to mohu udělat:</p><pre><code>public actionresult edit() { // render my page that has the edit form ... } [httppost] public actionresult edit(foothing foo) { // save my foothing data ... } </code></pre><p>myslím, že schopnost čistě oddělit vyřizování žádostí get a post žádostí) je elegantní. váš počet najetých kilometrů se může lišit.</p><p>další věc, kterou asp.net mvc dělá, že je super v pohodě (opět podle mého názoru), souvisí také s manipulací s posts. v rails musím dotazovat <code>params</code> hash pro všechny mé proměnné formuláře. řekněme, že mám formulář s poli „status“, „gonkulated“, „invert“ a „dispozice“:</p><pre><code>def edit @item = item.find(params[:id]) if params[:status] == "new" ... else ... end if params[:gonkulated] == "true" ... else ... end if params[:invert] == "true" ... else ... end # rest ommited for brevity end </code></pre><p>ale asp.net mvc úhledně mi umožňuje získat všechny hodnoty formuláře jako parametry mé metody akce:</p><pre><code>[httppost] public actionresult edit(int id, string status, bool gonkulated, bool invert, int disposition) { ... } </code></pre><p>to jsou dvě věci, které se mi na asp.net mvc nebo rails opravdu líbily. <strong><em> nestačí, aby si nějaký rozumný nebo kompetentní vývojář vybral jeden rámec nad druhým. </em></strong></p>
Co je to „normální staromódní webová služba?“ ASMX služby, nebo používáte WSE stejně? ASMX služby nejsou přirozeně interoperabilní, nepodporují WS- * specifikace a ASMX je technologie, která stárne velmi rychle. WSE (Vylepšení Web Service) služby DO přidat podporu pro WS- * a mohou být vyrobeny tak, aby spolupracovala, ale WCF je chtěl nahradit WSE, takže byste měli mít čas se to naučit. Řekl bych, že pokud vaše aplikace je rychlý špinavé one-off, získáte obrovskou flexibilitu a skončit s lepším designem, pokud se rozhodnete WCF. WCF *dělá* mají křivku učení mimo atributem [WebMethod], ale zaučení je nadměrně přehnaná podle mého názoru, a to je exponenciálně silnější a budoucnost, než starší ASMX služby.


Pokud váš čas linka prostě nemůže tolerovat křivku učení, měli byste být dělat sami obrovskou laskavost učení WCF namísto pouhého nalepení s ASP.NET Web Services. Aplikace bude i nadále jen aby se stal více a více distribuované a vzájemně propojené, a WCF je budoucnost distribuovaných výpočtů na platformě Microsoft.


[Zde je srovnání](http://msdn.microsoft.com/en-us/library/aa738737.aspx) mezi těmito dvěma. Upřímně řečeno, já bych jít s sestavení .NET, jak se zdá být jednodušší řešení a těsněji obsahoval řešení, než zahájit nový proces. Některé z důvodů, proč jsem pocit, že způsob, jakým jsou tyto:


1. S nástrojem příkazového řádku, že jste na trh nový proces. Takže je to zcela samostatný proces ID běh a bude probíhat mimo rozsah a aplikační domény vaší stávající aplikace. Veškerá komunikace mezi aplikací a procesu bude přes hranice procesu a bude muset být provedeno buď s telefonem, jakési sdílené paměti, nebo nějaký jiný přístup, který by mohl být těžkopádný (zejména při řešení otázek).
2. Se zahájením nového procesu, jste v podstatě ztratí kontrolu nad tímto procesem z vaší aplikace. Pokud vaše aplikace zemře nebo se vypne, budete muset tento proces výslovně zabít - jinak budete muset úchyty zůstat otevřené soubory uzamčeny, atd.
3. Včetně sestavení .NET v aplikaci umožňuje vše spustit ve stejném kontextu (obecně), který umožňuje lepší komunikaci mezi složkami, snadnější ladění a odstraňování poruch (obecně), a jediný způsob je řízena.
4. Máte trochu větší kontrolu nad kódu. Zahájení procesu je v podstatě black-box - nemáte ponětí, co se děje uvnitř ní. Je pravda, že se sestavení .NET máte podobný black-box scénář, ale vzhledem k tomu, že je ve stejném procesu, může mít nějaké další vhled do toho, jak jsou hovory byly provedeny, kde jsou výjimky být hozen, atd. V podstatě mít trochu větší vhled do složky s sestavení .NET spíše než zahájit nový proces.


To jsou jen některé myšlenky z vrcholu mé hlavy. Doufám, že to pomůže. Máte-li dotazy, dejte mi vědět a já vám zpracovat mé odpovědi. Hodně štěstí!! Vem si to s zrnko soli, ale podle mé zkušenosti, LINQ a WPF jsou stále v říši „Jo, chtěli bychom se dostat do toho jednoho dne“.


Většina obchodů jsou stále na VS2005 a .NET 2.0, takže bych chtěl, aby se ujistil jsem byl až do rychlosti na základní vybavení:


* generik
* ADO.NET
* WinForms / WebForms závislosti


A tak dále. <http://mvcsitemap.codeplex.com/> oba cpu maji stejny pocet jader. Ryzen je o dost vykonnejsi (vcetne vykonu na jadro).Ryzen. Neni co resit. <p> <a href="http://en.wikipedia.org/wiki/mac\_os#mac\_os\_x">mac os</a> je založeno na kódové bázi <a href="http://en.wikipedia.org/wiki/bsd"> bsd </a> , zatímco linux je nezávislý vývoj unixového systému. to znamená, že tyto systémy jsou podobné, ale nikoli <a href="http://en.wikipedia.org/wiki/binary\_compatibility">binární kompatibilní</a> .</p><p>kromě toho má mac os mnoho aplikací, které nejsou otevřeným zdrojem a jsou postaveny na knihovnách, které nejsou otevřeným zdrojem. z tohoto důvodu není možné tyto aplikace provozovat v systému linux, aniž by byly vlastníkem autorských práv těchto aplikací a knihoven.</p> Oba umí vesměs to samé, ale já mám radši SLES, zdá se mi přívětivější. Oba si taky můžeš zadarmo stáhnout na vyzkoušení. Spousta lidi rika, ze jim UPC blokuje torrenty, ale podle me si to spis nedokazi nastavit. Ja s torrenty zadne problemy nemam(a znam dalsi lidi se stejnymi zkusenostmi). Co ti brání runtime C++ 2019 znovu nainstalovat? Je to volně dostupný balík univerzálních knihoven pro provoz programů vytvořených v C++. I to se stave. Ono je sranda, ze vsichni chteji router, ptaji se na router a jedine pozadavky jsou na APcko - o routovani ani pismeno ![](/Client.Images/smileys/1.gif)