Tek bir projede birden platformları kullanma

10 Cevap

Ben yaklaşan bir proje C #, Java ve PHP kullanmak istiyorum. Ben ne potansiyel tuzaklar için dikkat etmelidir? Bir proje için çoklu platformlar kullanmanın avantajları var mı? Hedef geliştirme ekibi bu projede internet üzerinden çalışan farklı geçmişlere sahip kişidir.

Edit: spesifik olun ve bu iyi değil ki cevaplar ile çok genel olmayın lütfen ... bana çarptırılabilir ne mümkün sorun bildirin, bu sorunlara neden olur belirli olması etc.Please.

Entegrasyon için planım 2 yöntem kullanmak olacaktır.

1..) WebServices (php Common,. Net ve JAVA)

2..) MySQL Veritabanı (PHP ile sık erişilebilir. Net ve JAVA)

Benim proje geliştiriciler modules / eklentileri entegre ve geliştirmek gibi her türlü platformu kod için özgürlük olabilir işletmeler için ERP + CRM projesidir.

10 Cevap

Ben birlikte bu üç teknolojiyi kullanmaya düşünüyorum senaryo zengin bir GUI (Windows üzerinde C #) sağlam bir arka uç (EJB veya benzeri bir Java Framework) ve bir web ön uzak kullanıcılar (PHP) için sona ile dağıtılmış bir sistem olacaktır.

Makul bir argüman, her durumda en iyi olmak olanlar için yapılmış olabilir, ancak, bu tür bir düzenleme ile sorun çoğaltılması olduğunu. Her veri yapısı GUI ve PHP, arka sonunda, veritabanında çoğaltılamaz vardır. Buna ek olarak, entegrasyon test ve hata ayıklama sorun çok daha karmaşık yapılır. Herşey mesajlar, üç dilde inşa edilecek çözmek protokollerini değiştirmek zor katman arasında veri aktarmak için ilkellere aşağı haşlanmış gerekecektir, ve şeyler oradan tepeden aşağı gidin.

Daha iyi bir yaklaşım boyunca tek bir platformda ürünü (kod) temel özelliğe sahip olacaktır. Sonra uygulama ile tanımlanmış yolları üzerinde iletişimi sağlayan MySQL web hizmetleri ve tampon tablolar şeklinde entegrasyon noktaları sağlamak ve eklentileri yazmak isteyen geliştiriciler kendi tercihi dilinde bu entegrasyon kullanalım. Veritabanı ile entegrasyon konusunda makul bir yaklaşım bu amaç için tanımlanan tablolar, artı iç veri yapısına bu tabloları eşleştirmek için yazılır saklanan rutinleri kullanmak olabilir. Bu size modülleri doğrudan veri modeline yazmak zorunda daha iyi kapsüllemeyi verecektir.

Eğer bir karmaşa içinde olacak. bir platform seçmek ve ona sopa.

Advantages:

Bazı teknolojiler diğerleri için bazı şeyleri ve kötü için iyi. Birden teknolojilerini kullanarak çoklu teknolojilerin güçlü oynamak için izin verir.

Disadvantages:

Karmaşıklık. Birden fazla sistemi birleştirerek karmaşıklığı büyük bir darbe-up neden olabilir. (Bu genellikle dışarı yararları tartmak olacak)

Sen 1 platformu kullanmak gerekir. Bu platformlar 3 işlevsellik açısından daha fazla veya daha az eşittir. Jjnguy söylediğim gibi çok değil geri dönüşü için büyük bir karmaşıklık blowup olacaktır. Bunu yapay zor yapmadan yeterince sorunları ve sorunları olacak!

Hmm. Düzgün yönetilen değilse, bu felaket için bir reçete gibi geliyor :)

Neden üç teknolojileri? Çünkü katılan insanların tercihleri ​​(PHP bazı parçalar için çok yavaş olduğu gibi) ya da sadece budur bunu gerektiren teknik gerçekler var mı? İkinci durumda, ben ciddiye yeniden. Üç teknolojileri ile bir takım entegre yol boyunca çok sayıda tuzaklar ve sorunlar.

Kesinlikle gerekli olduğu takdirde ben bu teknolojileri karıştırmak olur. Aksi takdirde farklı dillerde sorun aynı parçalar uygulanması ve teknoloji kökleri var yanlışlıkları düzeltmeye çok zaman harcamak.

Olduğu gibi, üç farklı dilleri seçerek imkansız yapıyoruz kodu yeniden alma hakkı zaten koduyla bir sorundur. Ayrıca bir projenin bir parçası üzerinde çalışan birisi onlar da bu dili bilmiyorsanız, kolayca farklı bir parçası üzerinde çalışıyor kaymıştır mümkün olmayacaktır sağlamak vardır ...

Ve sonra ne sistem çalışırken etkileşimleri hakkında, nasıl üç dilde katedecek aramaları ayıklamak planlıyorsunuz?

Insanity. Ben hangisini seçtiğiniz önemli ama birini seçmek değil, en upvoted soru katılıyorum, ve tek.

Ben PHP ASP.NET demedin beri C # ile birlikte kullanmak için iyi bir seçim olabileceğini söylemek gerekir. Bundan birlikte çalışabilirlik ile çalışmak için denedim hiç ama sizin UI sunum mantığı için PHP kullanımı ve C # backend / veri erişimi yoksa hala nispeten sürdürülebilir olması gerektiğini söyledi.

Web hizmetleri bölümü için ben C # tarafında sizin için svcutil ve tüm kaçınan bir veri sözleşme dll kullanarak zaten oluşturulan WSDLs ile birlikte WCF hizmetleri açığa beri her dilde 'web hizmetleri için yerel destek sunmak için çok güzel bir özellik olacağını düşünüyorum birden fazla servis ana olan yaygın sınıfları ile ortaya çıkan eğilimi sorunların.

Kesinlikle içine çalışacak bir sorun devlet ve oturum yönetimi; Her platformu bunu yaparken kendi yöntemleri vardır ve hiç değilse onlar, çok iyi birbirleriyle konuşmak olmaz.

Genel olarak, bu tür ortamda aklı başında kalmak için tek yolu sadece birlikte çalışabilirlik gibi hizmet arabirimleri gibi bariz bir gereklilik olduğu noktalarda platformlar arasında geçiş olduğunu. Gerçekten çok katmanlı bir ortamda (burada "kademe" makineler arasındaki sınırların ötesinde gidiyor demektir) ise, o zaman çizebilirsiniz temiz bir çizgi var. Aksi takdirde, ben burada tavsiye kalanı ile hemfikir; bir platformu almak ve sopa ile.