Aracılığıyla paylaş


Uygulamanızı modeller aracılığıyla oluşturma ve yapılandırma

Bir modelden uygulamanızın bölümlerini oluşturabilir veya yapılandırabilirsiniz.

Model, gereksinimleri koddan daha doğrudan temsil eder. Uygulamanın davranışını doğrudan modelden türeterek, değiştirilen gereksinimlere kodu güncelleştirdiğinizden çok daha hızlı ve güvenilir bir şekilde yanıt vekleyebilirsiniz. Türetmeyi ayarlamak için bazı ilk çalışmalar gerekli olsa da, gereksinimlerde değişiklik bekliyorsanız veya ürünün çeşitli çeşitlemelerini yapmayı planlıyorsanız bu yatırım döndürülür.

Bir Modelden Uygulamanızın Kodunu Oluşturma

Kod oluşturmanın en kolay yolu metin şablonlarını kullanmaktır. Modeli tuttuğunuz Visual Studio çözümünde kod oluşturabilirsiniz. Daha fazla bilgi için bkz.

  • T4 Metin Şablonları Kullanarak Tasarım Zamanı Kodu Oluşturma

  • Etki Alanına Özgü Dilden Kod Oluşturma

    Bu yöntemin artımlı olarak uygulanması kolaydır. Yalnızca belirli bir servis talebi için çalışan bir uygulamayla başlayın ve modelden farklı olmasını istediğiniz birkaç bölümünü seçin. Bu bölümlerin kaynak dosyalarını metin şablonu (.tt) dosyaları olacak şekilde yeniden adlandırın. Bu noktada, kaynak .cs dosyaları şablon dosyalarından otomatik olarak oluşturulur, bu nedenle uygulama daha önce olduğu gibi çalışır.

    Ardından kodun bir bölümünü alabilir ve modeli okuyan ve kaynak dosyanın bu bölümünü oluşturan bir metin şablonu ifadesiyle değiştirebilirsiniz. Uygulamayı yeniden çalıştırabilmeniz ve önceki gibi çalışması için modelin en az bir değeri özgün kaynağı oluşturmalıdır. Farklı model değerlerini test ettikten sonra, kodun başka bir bölümüne şablon ifadeleri eklemek için ilerleyebilirsiniz.

    Bu artımlı yöntem, kod oluşturmanın genellikle düşük riskli bir yaklaşım olduğu anlamına gelir. Sonuçta elde edilen uygulamalar genellikle el ile yazılmış bir sürümün yanı sıra neredeyse aynı şekilde performans gösterir.

    Ancak, mevcut bir uygulamayla başlarsanız, model tarafından yönetilen farklı davranışları birbirinden ayırmak için çok fazla yeniden düzenlemenin gerekli olduğunu fark edebilirsiniz, böylece bunlar birbirinden bağımsız olarak değişebilir. Projenizin maliyetini tahmin ederken uygulamanın bu yönünü değerlendirmenizi öneririz.

Uygulamanızı Bir Modelden Yapılandırma

Uygulamanızın çalışma zamanındaki davranışını değiştirmek istiyorsanız, uygulama derilmeden önce kaynak kodu oluşturan kod oluşturmayı kullanamazsınız. Bunun yerine, uygulamanızı modeli okuyacak ve davranışını buna göre değiştirebilecek şekilde tasarlayabilirsiniz. Daha fazla bilgi için bkz.

  • Nasıl yapılır: Program Kodunda Dosyadan Model Açma

    Bu yöntem artımlı olarak da uygulanabilir, ancak başlangıçta daha fazla iş vardır. Modeli okuyacak kodu yazmanız ve değerlerinin değişken parçalar için erişilebilir olmasını sağlayan bir çerçeve ayarlamanız gerekir. Değişken parçalarını genel hale getirmek, kod oluşturma işleminden daha pahalıdır.

    Genel bir uygulama genellikle belirli karşılıklarından daha az iyi performans gösterir. Performans önemliyse, proje planınız bu riskin değerlendirmesini içermelidir.

Türetilmiş Uygulama Geliştirme

Aşağıdaki genel yönergeleri yararlı bulabilirsiniz.

  • Belirli bir başlangıç yapın ve genelleştirin. Önce uygulamanızın belirli bir sürümünü yazın. Bu sürüm tek bir koşul kümesinde çalışmalıdır. Düzgün çalıştığından memnun olduğunuzda, bir kısmının bir modelden türetilmiş olmasını sağlayabilirsiniz. Türetilmiş parçaları kademeli olarak genişletin.

    Örneğin, modelde tanımlanan sayfaları sunan bir web uygulaması tasarlamadan önce belirli bir web sayfaları kümesine sahip bir web sitesi tasarlarsınız.

  • Değişken yönlerini modelle. Gereksinimler değiştikçe, bir dağıtım ile başka bir dağıtım arasında veya zaman içinde farklılık gösterecek yönleri belirleyin. Bunlar bir modelden türetilmesi gereken yönlerdir.

    Örneğin, aralarındaki web sayfaları ve bağlantılar kümesi değişirse, ancak sayfaların stili ve biçimi her zaman aynıysa, model bağlantıları açıklamalıdır, ancak sayfaların biçimini açıklamak zorunda değildir.

  • Ayrı endişeler. Değişken yönleri bağımsız alanlara bölünebiliyorsa, her alan için ayrı modeller kullanın. ModelBus kullanarak, hem modelleri hem de bunlar arasındaki kısıtlamaları etkileyen işlemler tanımlayabilirsiniz.

    Örneğin, web sayfaları arasında gezintiyi tanımlamak için bir model ve sayfaların düzenini tanımlamak için farklı bir model kullanın.

  • Çözümü değil gereksinimi modelleyin. Modeli, kullanıcı gereksinimlerini açıklayan şekilde tasarlayın. Buna karşılık, gösterimi uygulamanın değişken yönlerine göre tasarlamayın.

    Örneğin, web gezinti modeli web sayfalarını ve aralarındaki köprüleri temsil etmelidir. Web gezinti modeli, uygulamanızdaki HTML veya sınıfların parçalarını temsil etmemelidir.

  • Oluşturulsun veya yorumlansın mı? Belirli bir dağıtımın gereksinimleri nadiren değişecekse modelden program kodu oluşturun. Gereksinimler sık sık değişebiliyorsa veya aynı dağıtımda birden fazla değişkende birlikte bulunabiliyorsa, modeli okuyup yorumlayabilmesi için uygulamayı yazın.

    Örneğin, farklı ve ayrı olarak yüklenmiş bir dizi web sitesi geliştirmek için web sitesi modelinizi kullanıyorsanız, sitenin kodunu modelden oluşturmanız gerekir. Ancak her gün değişen bir siteyi denetlemek için modelinizi kullanırsınız, ardından modeli okuyan ve siteyi uygun şekilde sunan bir web sunucusu yazmak daha iyidir.

  • UML mi DSL mi? UML'yi genişletmek için stereotipleri kullanarak modelleme gösteriminizi oluşturmayı göz önünde bulundurun. Amaca uygun UML diyagramı yoksa DSL tanımlayın. Ancak UML'nin standart semantiğini bozmaktan kaçının.

    Örneğin, UML sınıf diyagramı bir kutu ve ok koleksiyonudur; bu gösterimi ile teoride her şeyi tanımlayabilirsiniz. Ancak, aslında bir tür kümesini açıkladığınız durumlar dışında sınıf diyagramını kullanmanızı önermeyiz. Örneğin, farklı web sayfası türlerini açıklamak için sınıf diyagramlarını uyarlayabilirsiniz.