Asp.net / asp.net-mvc ile PHP entegre için en iyi yol

3 Cevap php

Bazı tesadüf bu sveyaunu geçen hafta iki kez geldi.

Bir müşteri onlar tutmak istediğiçindeiz varolan bir PHP web sitesi var. Onlar da var veya yakında onlar tek bir site olarak görünür bir şekilde, varolan sitenize entegre etmek isteyen bazı ASP.net web sayfaları olacak.

Biz aşağıdaki olanakları olsa var:

  • Kullanım IFrame
  • Yeni site ve siteler arasındaki bağlantı, siteler arasındaki kullanıcı hamle tüm html / menüler kopyalayın ama o url bakmaz bile, fark etmez
  • Asp.net web sitesiçindeden bilgi almak ve PHP sitede html yazmak içiçinde web servisleriçindei kullanabilirsiçindeiz.
  • WSRP (Web hizmetleri Uzak Pveyatletler) kullanın. Java sitede Shvardırpoiçindet webparts göstermek içiçinde bu test ettik, PHP ile test etmedim.

Herkes bunlardan herhangi çalıştı? Daha iyi bir öneri var? Biz kesiçindelikle kaçınmalısınız hiç var mı?

Teşekkürler

Shiraz

3 Cevap

Gerçekten entegrasyon kabul edilebilir bir düzeyde ne bağlıdır. Orijinal öneri sürdürülebilirlik ile ilgili sorunlar bir dizi var, ve ben onlar bir kamu bakan internet sitesi için kullanılan tavsiye etmem.

Ben tam kontrol olsaydı, IIS için PHP sitesi göç ve PHP dosyaları yanında siteye ASP.NET sayfaları dağıtma düşünebilirsiniz. Bu PHP site inşa edilmiştir nasıl bağlı olarak oldukça zor olabilir. Eğer dahil çalıştırmak olabilir Sorunları:

  • PHP uygulaması ve Windows üzerinde yerine uygun olup olmadığı mod_rewrite kullanımı. Bu durum yazma sırasında çok daha iyi olduğunu ancak mevcut yapılandırmayı hata ayıklamak gerekebilir.
  • Uzantıları. PHP kitaplıkları ve uzantıları tüm Windows üzerinde mevcut gerekir mı?
  • Performansı. Bazı insanlar Windows altında PHP edilemez performans bildirdi. Bu bile bir sorun olup olmadığını, doğru performans ayarlama ile eski sitenize eşdeğer bir şey sunabilirsiniz eminim.

Size önerilen seçenekleri

  • Use IFrame. Bu uygulanabilir ama aksak biraz, Bu kod tabanları arasında SSL veya JavaScript etkileşim gibi şeyler gerekiyorsa sorunlu olduğu ortaya çıkabilir.
  • Link between sites. Bu uygulanabilir, ama SEO sizin için önemli ise sorunları olabilir. Bazen de dikkate almak gerekir, sadece menülerden daha fazla bağlantılar vardır.
  • Use web services to read the ASP.NET pages. Eğer sıfır etkileşimleri veya Postbacks sahip, çok basit sayfalar varsa, bu sadece gerçekten mümkündür. Eğer Postbacks işlemek gerekiyorsa, viewstate vb belada olacak. ASP.NET MVC kullanmak size daha fazla kontrol ve bu şekilde entegre daha kolay bir deneyim sunuyor. Benim kişisel görüşüm bu (gerçekten önemli ise) son derece hacky ve ben tek bir sayfa için yapacağını tek şey olmasıdır.
  • Use WSRP (Web services Remote Portlets). Ben bu normal ASP.NET ile bir seçenek olduğundan emin değilim, ben her zaman bu SharePoint ile ek bir özellik olduğunu düşündüm.

Tüm site IIS çalıştıran bir windows makine üzerinde barındırılan olabilir? IIS can serve PHP pages gibi asp.net çünkü. Bu şekilde mix-ve-maç sorunsuz birlikte sayfaları olabilir.

Başka, daha "kirli" seçeneği doğrudan uzak asp.net sayfalarından HTML çıktı "okumak" için PHP kullanmak olacaktır. Her gelen asp.net sayfa için bir PHP dosyası olurdu ve sonra PHP'nin file_get_contents yöntemini kullanarak HTTP yoluyla "okumak" olabilir:

$content = file_get_contents('http://www.example.com/remotepage.aspx');

Muhtemelen verimliliği artırmak için lokal sonuçlarını önbelleğe isterdim.

Tüm bu seçenekler tamamen denize vardır!

Simple solution would be to keep the solutions hosted seperately, Apache & IIS respectively. And handle the integration Via Routing. The authentication could be handled by using the "Cookie"

Biz hiçbir sorunları ile bir müşteri için son zamanlarda bu ele ettik

Web ön uç wordpress & dayalı MySQL ve tüm raporlama modülü SQL Server 2008 R2 tabanlı bir dayalı MVC 3/4 oldu.

Biz sadece alt etki kullanılır. Yani www.somecompany.com raporlar için web sitesi ve reports.somecompany.com için.

We then just wrote a simple wordpress extension, to store linking data to which contained relevant information to create reports. i.e. Guid ID of user and report type etc.

Aslında sadece onlar çalıştırabilir bazı raporlar seçenekleri içeren bir sayfa ile kullanıcı sundu - Hangi köprüler <a href="http://reports.somecompanyurl.com/bill/{some guid}>You Monthly Bill</a>

yani Aylık Bill

Both sites shared a common theme, which does carry some maintenance burden, but no more than a usual web project. i.e... MVC and PHP theme files do have some differences, but in general the CSS files were the same.

Sanırım çerez biraz özelleştirmek yaptığını düşünüyor, ancak her iki çözümleri sadece aynı çerez adı ve çerez şifreleme kullanılan bu, gerçekten herhangi bir sıkıntı yoktu.

En çok iletişim yönlendirme üzerinden ele alındı ​​Bütün olarak bu, oldukça ağrısız bir entegrasyon projesi oldu.

Biz herhangi bir sorun olmadan 6 ay boyunca bu çalışan oldum.