Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

VFP 2 .Net Roadmap

Status
Not open for further replies.

stanlyn

Programmer
Sep 3, 2003
945
US
Hi,

I'm asking a .Net question here because I've been developing VFP apps for 16 years now and I need to get going in the Visual Studio .Net web development stuff and I cannot figure out a roadmap to get there. Its so intimidating at all the different apps I have to know to be productive in this new environment as a 2 man shop. Looks like I have to learn a lot about Visual Studio, OOP, .NET, C#, SQL Server, Php, Entity, JQuery, Java, Css, IIS, MVC, and whatever else I don't know about.

My experience over the years has been in SCO Unix, filePro, VFP3-9, MsSql, OOP, and IIS. So, with this in mind what should I be studying and when(order). Because I'm starting as a relatively new programmer to .Net, what study order would yield the most production of getting a VFP app migrated/re-created as a .Net Web app?

Study what 1st, 2nd, 3rd, and so on?... (and why you believe its best)

Many Thanks,
Stanley
 
>you can do that with a web app using Knockout.

Fine, another new thing to me. That's what I'm say: Too many options. There are pros and cons about that. There is no industry standard for development, and that's fine as needs are individual, thinking and habits are different and variety is good. But then two companies merge, or two apps need to merge, and that fails due to different architectures and impedance mismatch. In comes SOA and also does not make software development cheaper and developers replacable with each other...

On the highest level the benefit you can do for users matters, how fast and how cost effective that can be done.

I get back to another thought, Stanlyn: "should I be hiring some young guns for the coding of my apps". Maybe that would be a good idea instead of learning on your own. Network at least to be inspired by ideas. If you hire someone, don't just delegate the development to them, learn from each other and split tasks. You have the experience with your ideas and new employees have the newer techniques.

Bye, Olaf.

 
There seems to be a handful of javascript-based technologies that are pretty much standard right now: jquery, jqueryUI, knockout, node, angular. There are a few more than seem to be up and coming: breeze is the only one that comes to mind at the moment.

Too many companies jump onto SOA and service bus to solve all their problems when there could be simpler ways to do it.

Craig Berntson
MCSD, Visual C# MVP,
 
Kendo UI is what I played with a bit in conjunction with telerik controls, that was also already mentioned by stanley. I think bootstrap is worth a mention.
Also see
Then boilerplate as another important UI framework. There is a wide range and variety of Javascript frameworks. Mostly important is jquery, anything else builds up on that. Mostly they don't end at relational databses though. If MS SQL Server is of importance for your data storage, you better go the ASP.NET development stack and then javascript plays a minor role.

Bye, Olaf.
 
All becoming clear now,Stanley , all you need is the following ( for starters, that is )

RequireJS, CoverJS, node.js, bootstrap , Grunt, Mocha, Chai, knockout.js, JetBrains, WebStorm , mongoDB, Angular.JS [bigsmile]

to add to your list
jQuery, Visual Studio, HTML, CSS3, C#, and SQL for now.

But seriously
1) as Olaf says
If MS SQL Server is of importance for your data storage, you better go the ASP.NET development stack and then javascript plays a minor role.
i.e ASP.NET MVC and Entity Framework and since you are starting from zero, allow yourself at least 2 years to build anything commercial

2) or else farm it out to the young guns, spec out your needs and let them demo their JavaScript wares

should I be hiring some young guns for the coding of my apps

 
>RequireJS, CoverJS, node.js, bootstrap , Grunt, Mocha, Chai, knockout.js, JetBrains, WebStorm , mongoDB, Angular.JS [bigsmile]

Now you're exaggerating - well, you add the big smile, understood.

You can really also start small with Javascript, indeed as I said you can learn jquery without first learning javascript. That's because jquery actually redefines and extends the javascript language and makes it it's own new language. That's the reason anything else builds on top of jquery, and therefore knowing pure javascript only helps partly.

But I could have come up with the last thought about SQL Server earlier, true. If SQL Server plays a role, you're quite lost with a javascript tool stack. You can also still do ajax calls to anything capable to query SQL Server, but that'd be your own hack or extension of any javascript framework.

But jquery is no dead end. Even more so, if you don't care for what database is used as long as it can store the data in a consistent and secure way. There's more than one database, which can do that.

Bye, Olaf.
 
Thanks guys for such an interested discussion...

And yes clipper01, it is completely clear... "Forget about me ever being able to produce anything billable with this web stuff!!" Lets see, you mentioned 1.RequireJS, 2.CoverJS, 3.node.js, 4.bootstrap, 5.Grunt, 6.Mocha, 7.Chai, 8.knockout.js, 9.JetBrains, 10.WebStorm, 11.mongoDB, 12.Angular.JS, 13.jQuery, 14.Visual Studio, 15.HTML, 16.CSS3, 17.C#, 18.Entity, and 19.SQL Server. Wow, I'll be 79 years old if I only give a single year to each technology before being able to bill for anything... (or is it only 2-3 years?)

After meeting with some of the young guns, I've decided to turn them loose and build the apps while I hang around and play a leading role as lead architect because we will be creating web apps that mirrors the apps I've already created in VFP. I'll also be learning as we move forward with real hands on.

We've also decided on the MS stack because of external device compatibility and connectivity(scanners and etc). The young guns expressed a concern about finding all the right stuff using open source, so we decided that M$ would be the best fit.

Btw, one of the young guns that I counseled with which is a 4th year college student at the Ubiversity of Kentucky said he had never heard of MVVM. He is proficient in MVC.

So, is it agreed that Visual Studio, jQuery, SQL, Entity, and C# are the core essentials?

But then again, I cannot get "Well, ralaxing in the sun and enjoying a cold one on a beach somewhere with a friend?"
out of my head...

Thanks,
Stanley
 
>Visual Studio, jQuery, SQL, Entity, and C# are the core essentials?
jQuery is out of play for that.
web apps with VS means doing ASP.NET MVC.
Also see
This replaces jQuery in terms of what it's for.

jQuery does not really play with VS components, but if you make yourself known at least to what ajax means, you can combine technologies. In short ajax means you do http requests from javascript, jquery or asp.net ajax and that calls some server side "something", which can be in any language, als an aspx script or php or whatever returning data in xml or more common json format. Which then is bound to controls.

You have misunderstood clippers joke. And as each component of the development is not for creating a whole application but just part of it, this rather compares to learning VFPs different topics, like control, Forms, SQL, Bizobjects, it's just each different layer of the n tier architecture now has it's own framework and name. You don't need to plan 1 year in each framework.

Opting for a javascript stack you can use jquery or more specific jquery ui, then add node.js for server side data access and of course as it's a web app you need html/css knowledge, and those are document description/composition tags, not programming languages you do code in.

As your future employees have a .NET mind, they'll go the ASP.NET route. Then forget about jquery, node.js and that stuff. ASP.NET also will create HTML5/CSS forms, this is still of interest. And ajax.

Bye, Olaf.
 
Good decision Stanley. You will also find that as you start looking at the ASP MVC code that they develop, it will be actually be quite easy to follow what is happening. And you will grow to love working with dotNet.

Re. jQuery , they WILL need to use it a little bit , typically it does some processing on the HTML form, like below as a simple example. And this all DOES happen within Visual Studio


Code:
@section Scripts {
    <script type="text/javascript">
        $("input[name=offerButton2]").click(function (e)
        { $("#newDate").val($(this).data("select")); });
    </script>
}

But MUCH more important, they will use jQuery Mobile to provide the touch interface for tablets
 
Clipper,

as I see it, using ASP.NET controls HTML and also jQuery or Java code is generated. Therefore it's nothing you have to learn.

Stanley: It pays to look out for turtorials and do them to see what is really doe by you and what is generated. Looking at the details described in books you get overwhelmed but most stuff of this is just for explaining what happend and where you could hook in and change something. Don't read too much before doing, you learn better by doing than elsewise.

Bye, Olaf.
 
> Olaf - jQuery is out of play for that.

I was thinking this was necessary if integrating controls like KendoUI into the app. Does this still hold true, because the native VStudio controls are NOT modern looking and cannot compete with controls like the 3rd party components. Is this correct?

Stanley


 
Well, what's truie is, that Javascript is the ONLY language available at the browser at client side, so even ASP.NET does only run C# at the server side, at the client side you have HTML, CSS, Javascript, and maybe also jQuery or a variant of that. But you don't code that you visually design and jquery/javascript code ajax etc. are mostly generated.

The only way to have C# at the client side is concentrating in WinRT, the Win8 apps, or doing Silverlight, which is running in a browser like a foreign object, as flash does. Silverlight IS a flash alternative. The the browser is just a shell around your silverlight application. But silverlight development might be at an end. I might be doing that anyway at a new company I am most probably employed from January 2014 on. That's because they started doing Silverlight apps for our common customer way back in 2010/11, AFAIK. Another thing MS started and treated as an orphan.

Bye, Olaf.
 
there are a lot of controls built using jQuery , many of them are free, part of the UI community and are excellent things/widgets like popup calendars , dialogs , grids etc . Libraries like Kendo etc are commercial/pay for. You dont need to " know" jQuery to use them , although it can be useful to know a little about it as anytime you need to " manipulate" your HTML outputs , jQuery makes it very much easier than doing "raw" javascript. So , no need for you to spend any time "learning" jQuery, let your coders use the tools as needed.


Typically your start up script will download them like below( 2nd code) and then you can reference them in your markup e.g. the data-role="datebox" pops up a datepicker

Code:
<input name="offer.date" id="offer_date" type="date" data-role="datebox" data-datebox-mode="calbox"
                data-val-date="The field date must be a date." data-val="true">

Code:
   @*CDN to JQM*@
    <link rel="stylesheet" href="[URL unfurl="true"]http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css"[/URL] />
    <script src="[URL unfurl="true"]http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>[/URL]
    @*CDN to datebox simple dialog *@
    <link rel="stylesheet" type="text/css" href="[URL unfurl="true"]http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.min.css"[/URL] />
    <link rel="stylesheet" type="text/css" href="[URL unfurl="true"]http://dev.jtsage.com/cdn/simpledialog/latest/jquery.mobile.simpledialog.min.css"[/URL] /> 

    <script type="text/javascript" src="[URL unfurl="true"]http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.core.min.js"></script>[/URL]
     <script type="text/javascript" src="[URL unfurl="true"]http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.calbox.min.js"></script>[/URL]
     <script type="text/javascript" src="[URL unfurl="true"]http://dev.jtsage.com/cdn/simpledialog/latest/jquery.mobile.simpledialog2.min.js"></script>[/URL]
 
Stanlyn,

You've been getting overloaded with things you don't need to know to get started. You absolutely don't need to know anything about "1.RequireJS, 2.CoverJS, 3.node.js, 5.Grunt, 6.Mocha, 7.Chai, 8.knockout.js, 9.JetBrains, 10.WebStorm, 11.mongoDB, 12.Angular.JS" to build robust web apps in ASP.Net MVC.

As for the young guns, be careful. Much of the time they just crank out code with no thought about maintainability, readability, coding standards, testability, etc.

Olaf is wrong on throwing out jQuery. It actually ships as part of the MVC templates in Visual Studio. Ajax and jQuery are different things. This toolkit looks like a competitor to jQueryUI. You should absolutely use jQueryUI over the Ajax Toolkit if you're going with MVC. Olaf, MVC does not use ASP.Net controls AT ALL. The ASP.Net controls are for use with ASP.Net web forms. You also don't visually design MVC...again, that's web forms.

I think Clipper's comment about jQuery happening "with Visual Studio" is a bit misleading. You write the jQuery code in Visual Studio but it executes in the browser.

Instead of Kendo, look at Wijmo ( It supports knockout, breeze, angular, and bootstrap styles out of the box. Plus, they're already touch and mobile ready.

Craig Berntson
MCSD, Visual C# MVP,
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top