CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com

View Poll Results: What is the best solution for you?

Voters
1. You may not vote on this poll
  • MVC PLUS .NET 4.00 and Weblights

    1 100.00%
  • MVC.NET 3.00

    0 0%
  • WebForms

    0 0%
  • JSF

    0 0%
  • MVC FOR SPRING

    0 0%
Results 1 to 3 of 3
  1. #1
    Join Date
    Apr 2011
    Posts
    6

    what is the Latest Technology in .NET for developers?

    Hi All.


    anybody like to learn or understand about MVC PLUS.NET 3.00 and Weblights ?

    if yes, I am ready to start teach all possibilities in MVC PLUS .NET and also working with weblights component set.

    to Understand what is MVC.PLUS , download the presentation attached to this message.

    kindly regards
    Ryan

  2. #2
    Join Date
    Apr 2011
    Posts
    6

    Re: what is the Latest Technology in .NET for developers?

    MVC PLUS 4.00 Presentation.

    I think you will be surprised from it's abilities .


    https://docs.google.com/document/d/1...t?hl=en&pli=1#

  3. #3
    Join Date
    Apr 2011
    Posts
    6

    Re: what is the Latest Technology in .NET for developers?

    MVC PLUS for MVC.NET 3.00
    WebLights Component Library

    Note : this Fremework is a framework with 100% compatibility with standard MVC FOR SPRING in J2EE and MVC.NET 3.00 and is running top of them and add many capabilities which were not exists in this arena before.
    I always disliked webforms because of it’s low quality of code and also a non web nature it had and also, I liked C# but because of leaking of MVC architecture in this platform, I went to JAVA, which library we are talking about also have a JAVA (MVC FOR SPRING) component Library but I like to introduce C# and MVC.NET version as my favorite product.
    The goals of this design was :
    An application like environment in the web
    Made a Real DB Centric System and less effort in manual coding for forms
    Low weight and high quality pages
    NEVER Use From IFrame or Popup Windows because of their behavior (which I did it with JavaScript SandBox means: all forms you load will load in the same DOM area and they will show in a DIV not an IFRAME)
    And many other goals and the most important was : a new and standard way for development specially I like to use META MODELS against Models because of Meta Models are have a much stronger concept.

    This System is:
    100% Full Ajax
    No refresh requierd at all, (I repeat again no refresh but you can redirect but also, no need to refresh the page at all)
    Upto 5 times faster Page Load
    And for first time:
    Java Script SandBox support Implemented in component Model (No need for Iframes at all!)
    100% DB centric System.


    Compare After we Done the Job:
    We did the same Code for the same reason and we tested them in three different platform, here you can see the results:

    As you see, MVC PLUS needs one third of MVC.NET and less than half of WebForms to spend it in development which means , Less Cost, More High Quality Code and exactly a cheaper and better product in code quality and overall.

    Here we compared these FrameWorks in line of Rendering size which also means less Render Time in server side which is effective if you use SSL (less cost for application server and much faster data transfer):



    As you see, in Average Forms are rendered with MVC Plus Have a size between 5 to 10 Kilobytes which is much less than other competitors, even less than half of their size in MVC.NET (Using Telerik Components)
    Note: All tests passed in my friends office, later I will publish the sample codes (these were a real product for business, so my friend might cut some parts of code)
    Note that All tests was done for the similar form design in view and reason and scenario.
    STANDARD MVC 3.00:
    In standard MVC you have to write your models as below:
    class Person{
    public string name {get ; set ; }
    public string FamilyName {get ; set ; }
    }
    public class ADDRESS{
    public string name {get ; set ; }
    public string FamilyName {get ; set ; }
    }



    Each view can support only up to one Model, for example you can have only Person Model or address Model accessible.

    In MVC PLUS :

    In MVC Plus , you have to declare your Models separated from Meta Models and Meta Models will be used in Controllers and Views:
    First Write your Models (which are works as repository or DAL):

    public class Person:WLBaseModel {
    [PrimaryKey]
    public int PersonID;
    [stringLength (max:50)]
    [REQUIRED]
    public string name {get ; set ; }
    [REQUIRED]
    [stringLength (max:50)]
    public string FamilyName {get ; set ; }
    }
    public class ADDRESS:WLBaseModel {
    [PrimaryKey]
    public int addrssID {get ; set ;}
    [ForeignKey(Person)]
    public int PersonID {get ; set ;}
    [REQUIRED]
    [stringLength (max:50)]
    public string City {get ; set ; }
    [REQUIRED]
    [stringLength (max:65535)]
    public string Address {get ; set ; }
    }


    And then you have to declare your META MODELS as below:

    public class MetaModel :WLBaseMetaModel
    {
    [ApplicationServerCache { timeOut:10}]
    public Person Person{get ; set ;}
    [ApplicationServerCache { timeOut:10}]
    public Address Address {get ; set ;}
    }




    In Standard MVC 3.00 , you cannot have access to both models , In MVC PLUS And Meta Models you can many models in one Meta Model.

    Views:
    We only support RAZOR in MVC.NET 3.00 , so, other view engines are not supported by now and we don’t think we will support them later.
    You can use META MODELS you declared in your View as below:

    @Html.WLControlFor(m=>m.Person.Name)
    @Html.WLControlFor(m=>m.Person.FamilyName)
    @Html.WLControlFor(m=>m.Address.City)
    @Html.WLControlFor(m=>m.Address.Addrsss)


    All Model Members Will Be Connected to each other , Grids, Trees, Editors, checkboxes, Combos etc, I repeat this phrase that you have to separate concept of Models and Meta Models From Each other.

    Here , you can see What I means in the upper lines
    As you see, Tree and Editors are connected to each other.

    But how it works? In brief we have an architecture like this , it was a complex architecture but we did it once to have a safe way of development:

    Later, I will introduce you how much it is hard to implement such a code in a heavy JavaScript and C# Library (mostly in architecture which was a hard to do)
    Note that this is a huge and great architecture for WEB , maybe for first time??? (I don’t know! Just maybe), we did several new things to supply this abilities.
    Batch Data Transfer:

    In standard MVC data transfer can send transfer a single record and you need to do many custom code for multiple records.
    Hard For Development in most cases you want to transfer several records to/from Server.
    In MVC You can send / receive multiple Records at once and we can name it Batch Transfer , it is useful for most cases of development.
    As an extra advantage in architecture, MVC Plus have a two side (server/client) cache in both client and server which will guarantee:
    You will receive a record or data only One Time.
    You will receive only required records which are need to show them in client.




    You can set Model Behavior as Live
    Since data is changed in client and you change cursor position in client or modify client data, Client Will send Update or Inserted or Deleted item to Server
    Address.LiveData = true;
    You can set Model Behavior as Offline
    You can send batch records , for example 10 modified records to server at once
    Person.LiveData = false;
    To handle batch or single records , you have triggers such as :
    Beforeinsert
    BeforeUpdate
    BeforeSelect
    BeforeDelete
    BeforeChange
    BeforeOtherCommands

    And also you have
    Afterinsert
    AfterUpdate
    AfterSelect
    AfterDelete
    AfterChange
    AfterOtherCommands



    Master/Details:
    In MVC Plus , you can made Models are available in Meta Models as Master detail, but don’t worry, no need to do much of code you thing just you have to do it with few lines of code, You can connect two models as Master detail as below:
    Address.Master = Person;
    Or :

    [AutoConnectModels(“*”)]
    public class MetaModel {
    … {Models …
    }








    No Need For Extra Code.
    Required Data for automatic actions will be provided through attributes Over model Properties:

    [PrimaryKey]
    public int addrssID {get ; set ;}
    [ForeignKey(Person)]
    public int PersonID {get ; set ;}

    Validation:

    Validations are will show beside of controls and client will show a message before send them to Application Server.

    Validation is very similar to standard MVC but you can have:
    RowValidation
    FieldValidation

    This is not required to do RowValidation Most of Times, but also you can add it to client and server.
    By default most of validations will be done automatically.

    A Sample Code Would be :

    Required]
    [RangeOf(OnlyAlphabet)]
    [MaxMinLength(5,50)]
    public string Name {get ; set ;}
    Or Even:
    [Required]
    [Password(StrongPassord)]
    [MaxMinLength(5,32)]
    [EqualTo(“confirmPassword”]
    Public string Password {get ; set ; }










    Also system will automatically validate type of model members in both client and server.

    Validations are will show beside of controls and client will show a message before send them to Application Server. You can set an special shape for them easily but by default they we have four different way of showing them: 1 – Before Post as Modal (DIV Modal not POPUP!) 2- in left top corner as tooltip when you are typing them 3- Custom Way 4- in Left or Right space of Edit Control
    Components:

    Each Single Control Should have a FieldName, which is similar to Model’s Property name in application server, these are will be generated automatically by C# or J2EE components.
    Just leave your control simply in view:
    @Html.WLControlFor(m=>m.Address.Addrsss)

    We have many many component ready for this Framework:
    Html.WLTextEditFor
    Html.WLWebEditorFor
    Html.WLDivEditFor
    Html.WLDisplayfor
    Html.WLTreefor
    Html.WLCheckBoxFor
    Html.WLComboBoxFor
    Html.WLSpinEditFor
    Html.WLAutoCompleteFor
    Html.WLLookUpFor
    Html.WLGridFor
    And more than 109 other READY TO USE components
    In pictures below you can see some pages are designed with this system , note that this tabs are not IFRAMES but they come from different sources and they are using from JAVASCRIPT SandBox Model, always you can run any JS Command From server side without refresh.

    MVC PLUS 2.00 now support TREE MODELS which are not exists before:
    Tree Models are have two way, manual or Automatic which uses Recursive Model. No need for any special code.
    Just Made Tree Property in Model Enabled:
    Model.IsTree=True;
    And then in view:
    @Html.WLTreeFor(m=>m.Person)



    Ryan Samiee
    BCs and 16 years Professional Experience (since I had 14 years old I started working with companies as a professional developer) and 14 years experience in Component Development in Delphi and then WEB Components.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured