Killexams.com 70-356 Dumps and Real Questions 2019
Latest and 100% real exam Questions - Memorize Questions and Answers - Guaranteed Success in exam
70-356 exam Dumps Source : MCPD ASP.NET Developer Upgrade
Test Code : 70-356
Test Name : MCPD ASP.NET Developer Upgrade
Vendor Name : Microsoft
Q&A : 119 Real Questions
Try out these real 70-356 actual test questions.
I just required telling you that I have crowned in 70-356 exam. All the questions about exam table had been from killexams. It is stated to be the real helper for me at the 70-356 exam bench. All reward of my fulfillment goes to this guide. This is the real cause behind my fulfillment. It guided me in the suitable way for trying 70-356 exam questions. With the help of this study stuff I changed into gifted to effort to all the questions in 70-356 exam. This examine stuff guides a person in the right way and guarantees you a hundred% accomplishment in exam.
Very clean to get licensed in 70-356 examination with these Q&A.
I would often miss classes and that would be a huge hindrance for me if my parents found out. I needed to cover my mistakes and make sure that they could believe in me. I knew that one way to cover my mistakes was to do well in my 70-356 test that was very near. If I did well in my 70-356 test, my parents would love me again and that they did because I was able to clear the test. It was this killexams.com that gave me the perfect instructions. Thank you.
party is over! Time to study and bypass the examination.
Im so happy i bought 70-356 exam prep. The 70-356 exam is difficult in view that its very vast, and the questions cowl the whole lot you notice in the blueprint. killexams.com became my major education source, and they cover the entiretyperfectly, and there have been tons of related questions about the exam.
am i able to find out touch data contemporary 70-356 licensed?
This is an absolutely valid and reliable resource, with real 70-356 questions and correct answers. The exam simulator works very smooth. With additional info and good customer support, this is an incredibly good offer. No free random braindumps available online can compare with the quality and the good experience I had with Killexams. I passed with a really high score, so Im telling this based on my personal experience.
am i able to find dumps Q & A modern 70-356 examination?
Hearty way to killexams.com team for the question & solution of 70-356 exam. It provided brilliant option to my questions on 70-356 I felt confident to stand the test. Observed many questions inside the exam paper a great deal likethe manual. I strongly experience that the manual remains valid. Respect the try with the aid of using your team individuals, killexams.com. The gadget of dealing topics in a very specific and uncommon manner is terrific. Wish you people create more such test publications in close to destiny for our comfort.
All is nicely that ends nicely, at very last exceeded 70-356 with Q&A.
i used to be 2 weeks brief of my 70-356 exam and my instruction changed into now not all completed as my 70-356 books got burnt in fireplace incident at my region. All I concept at that point become to cease the option of giving the paper as I didnt have any aid to put together from. Then I opted for killexams.com and that i nonetheless am in a kingdomof surprise that I cleared my 70-356 exam. With the free demo of killexams.com, i used to be able to grasp matters easily.
proper know-how and take a look at with the 70-356 Q&A and Dumps! What a aggregate!
Earlier than I walk to the attempting out center, i was so confident about my preparation for the 70-356 exam because of the truth I knew i was going to ace it and this self perception came to me after using this killexams.com for my help. Its farsuperb at helping university college students similar to it assisted me and i used for you to get acceptable rankings in my 70-356 test.
Nice to hear that real exam questions of 70-356 exam are available.
There isnt a good buy 70-356 exam materials obtainable, so I went in advance and acquired those 70-356 questions and answers. In reality, it obtained my coronary coronary heart with the manner the data is prepared. And yeah, thats right: mostquestions I observed at the exam have been exactly what turned into provided by way of killexams.com. I am relieved to have passed 70-356 exam.
in which can i am getting assist to put together and clear 70-356 examination?
killexams.com gave me an excellent preparation tool. I used it for my 70-356 exam and got a maximum score. I love the way killexams.com does their exam preparation. Basically, this is a dump, so you get questions that are used on the real 70-356 exams. But the exam simulator and the practice exam format help you memorize it all very well, so you end up learning things, and will be able to draw upon this knowledge in the future. Very good quality, and the exam simulator is very light and user friendly. I didnt come across any issues, so this is excellent value for money.
Do the quickest manner to skip 70-356 exam? i have got it.
I desired to have certification in 70-356 exam and that i pick out killexams.com question and solution for it. The entirety is brilliantly organized with killexams.com I used it for topics like facts collecting and desires in 70-356 exam and i had been given89 score attempting all the query and it took me almost an hour and 20 mins. Large way to killexams.
Microsoft MCPD ASP.NET Developer Upgrade
Serverless ASP.web Core provider on AWS Cloud updated
by means of David Ramel
Amazon web features has updated its serverless functionality for ASP.internet Core projects, the typical new route for Microsoft net programming.
ASP.web Core is the net providing for the "core" initiatives that take the common, growing older home windows-based .internet Framework to the new-age world of openness, pass-platform functionality and modularity.
Now the Amazon cloud has beefed up the ASP.web Core performance of an extra server-facet offering, its AWS Lambda provider that lets developers give code capabilities that are fired off -- customarily in accordance with events -- with out the need to provision and manage server resources.
above all, AWS these days highlighted an update to its NuGet package that lets cloud builders run an ASP.internet Core application as a serverless feature.
"today we have released edition three.0 of the Amazon.Lambda.AspNetCoreServer package," AWS said in a Feb. 7 blog publish. "This version adds support for application Load Balancers and takes skills of the brand new multivalue assist that API Gateway offers.
"Now with version three.0 of Amazon.Lambda.AspNetCoreServer which you could use both API Gateway or an software Load Balancer to show your serverless ASP.web Core functions."
The submit also details other new functionality, corresponding to:
Elastic Load Balancing recently brought aid for routing requests from an utility Load Balancer to AWS Lambda features.
Amazon API Gateway up to date the requests and responses sent to Lambda capabilities to consist of multivalue guide for headers and query string parameters.
The experience objects for API Gateway that the Amazon.Lambda.APIGatewayEvents NuGet equipment offers have been up-to-date, and AWS launched a new Amazon.Lambda.ApplicationLoadBalancerEvents equipment for requests coming from an software Load Balancer.
The source code for Amazon.Lambda.AspNetCoreServer is accessible on GitHub, together with AWS Lambda for .net Core.
David Ramel is the editor of visible Studio journal.
comments powered through
visual Studio reside! practicing SeminarFebruary 6-7, 2019Dallas, TX
visible Studio live! Las VegasMarch three-8, 2019Las Vegas, NV
visual Studio reside! New OrleansApril 22-26, 2019New Orleans, LA
visual Studio reside! BostonJune 9-13, 2019Boston, MA
visible Studio are living! practicing SeminarJune 18-19, 2019San Jose, CA
visible Studio live! Microsoft HQAugust 12-sixteen, 2019Redmond, WA
visible Studio are living! San DiegoSeptember 29 – October three, 2019San Diego, CA
visual Studio are living! ChicagoOctober 6-10, 2019Chicago, IL
register for our publication.
skill stage: Intermediate fame: active
low-budget: $450 (shortest music)
preliminary necessities:currently available MCSD certifications are:
MCSD: windows save Apps - There are two tracks: HTML5 and C#. You need to circulate 3 exams to your chosen tune.
MCSD: application Lifecycle administration - You need to pass 3 exams: Administering Microsoft visible Studio group groundwork Server 2012, application trying out with visual Studio 2012, and offering continual price with visible Studio 2012 software Lifecycle management.
assessments can charge $one hundred fifty every.
do not wish to stay up for these to fully roll out? Microsoft suggests developers earn the current MCPD credential on visible Studio 2010 and plan to comply with the improve direction that could be provided to transition to this new MCSD credential when it turns into obtainable.
continuing necessities:at first, recertification requires passing one or two tests or earning the linked Masters certification. Microsoft is exploring other recertification options and should announce those options as appropriate.
See all Microsoft Certifications
seller's page for this certification
Devs seeking the ultimate present for that particular someone have been thrown a lifeline the day before today, with the announcement of visible Studio 2019's launch date and a clean preview of the construction toolset.
unusually, your correspondent's print-out of the 14 February announcement slipped into a Valentine's Day card become obtained inexplicably negatively. in spite of everything, who would not wish to spend 2 April watching Scott Hanselman wrangling a keyboard are living on stage? Or as a minimum by way of a livestream at any fee.
The visual Studio gang have an awful lot to get via on launch day as the Swiss army Knife of construction equipment has grown a long way beyond its humble origins as visible Studio 97 22 years ago. visual J++, eh? these were the days.
visible Studio 2019 is an altogether different beast, and while C++ lingers on, C#, Python and a plethora of other languages and frameworks have became up to be part of the birthday celebration. The thing may also be used to target computer, web or cloud purposes, and Azure, of course, has to get a look-in.
and in contrast to Grandpa visual Studio 97 with its visible SourceSafe code pit, this time round Microsoft has its shiny new acquisition, GitHub, to blow their own horns.
With the date in intellect, Microsoft also emitted a third, and possibly closing, preview of visible Studio 2019.
Preview 3, which installed with none of the drama of Preview 2 (Microsoft ended up having to unlock two patches to take care of problems comparable to an installer infinite replace loop and crashes when opening certain styles of JSON info), is awfully a great deal a gradual-as-she-goes liberate as Redmond gears up for the large day.
The IDE is greater attractive to the eye, "dialling down the luminosity" of the Blue theme, and the odd decision to stick the answer identify in the popularity bar has been reversed, with the information now at the desirable of the IDE the place it belongs.
Extensibility has additionally considered some love in the kind of a single new kit called Microsoft.VisualStudio.SDK, which includes dependencies on all the programs within the visual Studio SDK, lifting devs out of NuGet dependency hell. that is the idea, besides the fact that children at this time best 15.9 of the SDK exists. The crew plans to go the entire option to edition 14 in the coming months.
ultimately, F# has bought fixes geared toward enhancing its efficiency over larger solutions in addition to tweaks to the compiler, while ASP.web has been given a lick of paint with visual Studio's New assignment look-and-consider.
And if the tweaks and enhancements are making the thing appear simply a little bloated nowadays, possibly Microsoft might hobby you within the open-supply visible Studio Code in its place on a platform of your option? ®
Unquestionably it is hard assignment to pick dependable certification questions/answers assets regarding review, reputation and validity since individuals get sham because of picking incorrectly benefit. Killexams.com ensure to serve its customers best to its assets concerning exam dumps update and validity. The vast majority of other's sham report dissension customers come to us for the brain dumps and pass their exams joyfully and effortlessly. We never trade off on our review, reputation and quality on the grounds that killexams review, killexams reputation and killexams customer certainty is imperative to us. Uniquely we deal with killexams.com review, killexams.com reputation, killexams.com sham report objection, killexams.com trust, killexams.com validity, killexams.com report and killexams.com scam. On the off chance that you see any false report posted by our rivals with the name killexams sham report grievance web, killexams.com sham report, killexams.com scam, killexams.com protest or something like this, simply remember there are constantly awful individuals harming reputation of good administrations because of their advantages. There are a huge number of fulfilled clients that pass their exams utilizing killexams.com brain dumps, killexams PDF questions, killexams hone questions, killexams exam simulator. Visit Killexams.com, our specimen questions and test brain dumps, our exam simulator and you will realize that killexams.com is the best brain dumps site.
C4040-252 exam questions | N10-006 exam prep | HP0-663 sample test | 70-345 real questions | 000-152 cram | 70-528-CSharp braindumps | 000-257 practice test | 70-411 Practice Test | HH0-350 test prep | COG-635 study guide | FN0-240 questions and answers | C4090-451 pdf download | 7893X brain dumps | HPE2-K43 exam prep | PMI-SP practice questions | 920-221 test prep | HPE2-T27 practice test | HP2-K08 dumps questions | HP2-B106 questions answers | 1Z0-202 free pdf |
Review 70-356 real question and answers before you take test
killexams.com exam prep material gives all of you that you have to pass 70-356 exam. Our Microsoft 70-356 dumps think of questions that are precisely same as real exam. High gauge and impetus for the 70-356 Exam. We at killexams guarantees your accomplishment in 70-356 exam with our braindumps.
We have our experts working continuously for the collection of real exam questions of 70-356. All the pass4sure questions and answers of 70-356 collected by our team are reviewed and updated by our Microsoft certified team. We remain connected to the candidates appeared in the 70-356 test to get their reviews about the 70-356 test, we collect 70-356 exam tips and tricks, their experience about the techniques used in the real 70-356 exam, the mistakes they done in the real test and then improve our material accordingly.
Once you go through our pass4sure questions and answers, you will feel confident about all the topics of test and feel that your knowledge has been greatly improved. These pass4sure questions and answers are not just practice questions, these are real exam questions and answers that are enough to pass the 70-356 exam at first attempt.
killexams.com Huge Discount Coupons and Promo Codes are as under;
WC2017 : 60% Discount Coupon for all exams on website
PROF17 : 10% Discount Coupon for Orders greater than $69
DEAL17 : 15% Discount Coupon for Orders greater than $99
DECSPECIAL : 10% Special Discount Coupon for All Orders
killexams.com helps a colossal scope of competitors pass the tests and get their accreditation. We have a major wide assortment of productive surveys. Our dumps are strong, slight, updated and of genuinely attractive Great to defeat the requesting circumstances of any IT certifications. killexams.com exam dumps are latest updated in prominently clobber way on well known start and material is released from time to time. Latest killexams.com dumps are open in testing centers with whom we're holding up our relationship to get latest material.
killexams.com Microsoft Certification study aides are setup through IT masters. A great many people objection that an unnecessary scope of questions in this kind of sizable wide assortment of tutoring evaluations and exam asset, and they might be as of late wiped out to deal with the cost of any additional. Seeing killexams.com specialists practice session this far achieving version in the meantime as still certification that every one the becoming acquainted with is anchored after significant examinations and exam. Everything is to make reassurance for hopefuls on their street to certification.
We have Tested and Approved 70-356 Exams. killexams.com offers the most particular and latest IT exam materials which relatively fuse all exam subjects. With the guide of our 70-356 consider materials, you don't need to misuse your hazard on examining significant piece of reference books and genuinely need to consume 10-20 hours to pro our 70-356 real questions and answers. Whats more noteworthy, we furnish you with PDF Version and Software Version exam questions and answers. For Software Version materials, Its exhibited to display the applicants reenact the Microsoft 70-356 exam in an actual environment.
We give free updates. Inside authenticity length, if 70-356 brain dumps which you have gotten exceptional, we will tell you with the guide of email to down load most extreme latest variety of Q&A. On the off peril that you don't pass your Microsoft MCPD ASP.NET Developer Upgrade exam, We will give you full refund. You should send the verified propagation of your 70-356 exam archive card to us. Ensuing to declaring, we will startlingly furnish you with FULL REFUND.
killexams.com Huge Discount Coupons and Promo Codes are as under;
WC2017: 60% Discount Coupon for all exams on website
PROF17: 10% Discount Coupon for Orders greater than $69
DEAL17: 15% Discount Coupon for Orders greater than $99
DECSPECIAL: 10% Special Discount Coupon for All Orders
In the occasion which you prepare for the Microsoft 70-356 exam using our exam simulator engine. It is something anyway hard to prevail for all certifications inside the main endeavor. You don't need to control all dumps or any free deluge/rapidshare all stuff. We offer free demo of each IT Certification Dumps. You can watch the interface, question Great and usability of our tutoring exams sooner than you select to purchase.
Killexams ISFS brain dumps | Killexams 1Z1-591 examcollection | Killexams C2090-632 practice test | Killexams BH0-011 questions answers | Killexams A4040-332 exam questions | Killexams 920-105 VCE | Killexams 1Z0-218 test questions | Killexams 1Z0-559 bootcamp | Killexams 1Z0-344 braindumps | Killexams 060-DSFA680 exam prep | Killexams CWNA-106 Practice test | Killexams E20-535 mock exam | Killexams 77-881 cram | Killexams 310-615 study guide | Killexams 000-M01 braindumps | Killexams MB4-217 Practice Test | Killexams MB3-214 dump | Killexams 1Z1-403 exam prep | Killexams COG-300 study guide | Killexams 9L0-606 real questions |
Killexams 000-535 practice test | Killexams P2140-020 VCE | Killexams 1Y1-A15 exam prep | Killexams HP0-S30 sample test | Killexams VTNE test prep | Killexams 000-315 bootcamp | Killexams HP0-242 real questions | Killexams ST0-119 free pdf | Killexams 000-559 cheat sheets | Killexams HP3-042 practice questions | Killexams 190-832 braindumps | Killexams 000-M17 study guide | Killexams 000-807 dumps | Killexams 3M0-700 brain dumps | Killexams DANB practice questions | Killexams C2180-607 real questions | Killexams M2040-642 exam questions | Killexams CAT-040 braindumps | Killexams 000-058 cram | Killexams 2B0-103 practice exam |
MCPD ASP.NET Developer Upgrade
Pass 4 sure 70-356 dumps | Killexams.com 70-356 real questions | [HOSTED-SITE]
Exam Objective Guides for MCTS and MCPD Exams Now Available
MCTS exams 70-431, 70-431 and MCPD exam 70-441 to head to beta in November-December time frame, with live release in 1Q 2006.
Last week, Microsoft posted three guides for new exams that will count toward the new-generation certifications that the company announced earlier this week. Each of the exams will be beta tested in November, with live release in the first quarter of 2006, according to Microsoft.
Two of the exams, 70-431, TS: SQL Server 2005-Implementation and Maintenance and 70-528, TS: .NET Framework 2.0-Web-based Client Development, will count toward fulfillment of the basic Microsoft Certified Technology Specialist designation.
Exam 70-431 is aimed at those wanting to prove expertise as a database administrator, database developer or business intelligence developer whose work primarily will involve SQL Server 2005. Microsoft recommends this exam for those currently possessing an MCDBA on SQL Server 2000 and want to update their certification with SQL Server 2005 skills. (However, Microsoft also notes that the MCDBA won't be retired, as certifications don't have an expiration date.)
Those who pass exam 70-431 will also have completed a requirement for the premium Microsoft Certified IT Professional: Database Developer , MCITP: Database Administrator and MCITP: Business Intelligence Developer titles. Microsoft expects the exam to be beta tested in November; while in beta, the exam will be numbered 71-431.
Exam 70-528, TS: .NET Framework 2.0-Web-based Client Development will find appeal among those who develop Web-based projects using Microsoft technologies. Microsoft recommends this exam to those who "work on a team in a medium or large development environment that uses Microsoft Visual Studio .NET, Enterprise Edition or Microsoft Visual Studio 2005," as stated on the exam objective guide. The company also recommends that "candidates should have at least one year of experience developing Web-based applications on .NET Framework 1.0/1.1/2.0," as well as solid expertise with Visual Studio 2005 and ASP.NET 2.0.
The exam will be numbered 71-528 while in beta; it's expected to be beta tested in the fourth quarter of 2005, with general release planned for February 2006. Those who pass the beta or live version will earn an MCTS title, and can use it as fulfillment toward the Microsoft Certified Professional Developer: Web Developer, MCPD: Windows Developer and MCPD: Enterprise Application Developer certs.
Professional developers who design and implement database solutions are the primary audience for exam 70-441, PRO: Designing Database Solutions Using SQL Server 2005, according to the exam objective guide. The guide also states that those who plan to take the exam should have at least three years of experience with database development work, gathering requirements and troubleshooting.
The exam will be beta tested in November, with the live version expected in early 2006. Candidates who pass this exam plus exam 70-431 will have completed two of the three exams needed to earn the MCITP: Database Developer title.
Instructor-led training, e-Learning courses and Microsoft Press self-study kits will be made available later this year; to find out more, see the exam objective guides:
Registration for the beta exams has yet to be opened to the public. Beta exams are free to those who are invited to take it and receive a free voucher code from Microsoft, and can be taken at selected Pearson Vue and Sylvan Prometric testing centers worldwide. To find out more, go to http://www.microsoft.com/learning/mcpexams/status/beta.asp . When the exams go live, they'll be available for $125 in the U.S. (international pricing will vary by region).
Michael Domingo has held several positions at 1105 Media, and is currently the editor in chief of Visual Studio Magazine.
Skill Level: Intermediate Status: Active
Low Cost: $450 (shortest track)
Initial Requirements:Currently available MCSD certifications are:
MCSD: Windows Store Apps - There are two tracks: HTML5 and C#. You must pass 3 exams on your chosen track.
MCSD: Application Lifecycle Management - You must pass 3 exams: Administering Microsoft Visual Studio Team Foundation Server 2012, Software Testing with Visual Studio 2012, and Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management.
Exams cost $150 each.
Don't want to wait for these to fully roll out? Microsoft suggests developers earn the current MCPD credential on Visual Studio 2010 and plan to follow the upgrade path that will be provided to transition to this new MCSD credential when it becomes available.
Continuing Requirements:Initially, recertification requires passing one or two exams or earning the associated Masters certification. Microsoft is exploring other recertification options and will announce those options as appropriate.
See all Microsoft Certifications
Vendor's page for this certification
You can skip the following boring story as it's only a prelude to the meat of this post.
As I've been sitting at my job lately trying to pull off my web development ninja skillz I feel like my hands tied behind my back because I'm there temporarily as a consultant to add features, not to refactor. The current task at hand involves adding a couple additional properties to key user component in a rich web application. This requires a couple extra database columns and a bit of HTML interaction to collect the new settings. All in all, about 15 minutes, right? Slap in the columns into the database, update the SQL SELECT query, throw on a couple ASP.NET controls, add some data binding, and you're done, right? Surely not more than an hour, right?
Try three hours, just to add the columns to the database! The HTML is driven by a data "business object" that isn't a business object at all, just a data layer that has method stubs for invoking stored procedures and returns only DataTables. There are four types of "objects" based on the table being modified, and each type has its own stored procedure that ultimately proxies out to the base type's stored procedure, so that means at least five stored procedures for each CRUD operation affected by the addition. Overall, about 10 database objects were touched and as many C# data layer objects as well. Add to that a proprietary XML file that is used to map these data objects' DataTable columns, both in (parameters) and out (fields).
That's just the data. Then on the ASP.NET side, to manage event properties there's a control that's inheriting another control that is contained by another control that is contained by two other controls before it finally shows up on the page. Changes to the properties are a mix of hard-wired bindings to the lowest base control (properties) for some of the user's settings, and for most of the rest of the user's settings on the same page, CLR events (event args) are raised by the controls and are captured by the page that contains it all. There are at least five different events, one for each "section" of properties. To top it off, in my shame, I added both another "SaveXXX" event, plus I added another way of passing the data--I use a series of FindControl(..) invocation chains to get to the buried control and fetch the setting I wanted to add to the database and/or translate back out to the view. (I would have done better than to add more kludge, but I couldn't without being enticed to refactor, which I couldn't do, it's a temporary contract and the boss insisted that I not.)
To top it all off, just the simple CRUD stored procedures alone are slower than an eye blink, and seemingly showstopping in code. It takes about five seconds to handle each postback on this page, and I'm running locally (with a networked SQL Server instance).
The guys who architected all this are long gone. This wasn't the first time I've been baffled by the output of an architect who tries too hard to do the architectural deed while forgetting that his job is not only to be declarative on all layers but also to balance it with performance and making the developers' lives less complicated. In order for the team to be agile, the code must be easily adaptable.
Plus the machine I was given is, just like everyone else's, a cheap Dell with 2GB RAM and a 17" LCD monitor. (At my last job, which I quit, I had a 30-inch monitor and 4GB RAM which I replaced without permission and on my own whim with 8GB.) I frequently get OutOfMemoryExceptions from Visual Studio when trying to simply compile the code.
There are a number of reasons I can pinpoint to describe exactly why this web application has been so horrible to work with. Among them,
The architecture violates the KISS principle. The extremities of the data layer prove to be confounding, and buring controls inside controls (compositing) and then forking instances of them are a severe abuse of ASP.NET "flexibility".
OOP principles were completely ignored. Not a single data layer inherits from another. There is no business object among the "Business" objects' namespace, only data invocation stubs that wrap stored procedure execution with a transactional context, and DataTables for output. No POCO objects to represent any of the data or to reuse inherited code.
Tables, not stored procedures, should be used in basic CRUD operations. One should use stored procedures only in complex operations where multiple two-way queries must be accomplished to get a job done. Good for operations, bad for basic data I/O and model management.
Way too much emphasis on relying on Web Forms "featureset" and lifcycle (event raising, viewstate hacking, control compositing, etc.) to accomplish functionality, and way too little understanding and utilization of the basic birds and butterflies (HTML and script).
Way too little attention to developer productivity by failure to move the development database to the local switch, have adequate RAM, and provide adequate screen real estate to manage hundreds of database objects and hundreds of thousands of lines of code.
Admittance of the development manager of the sadly ignorant and costly attitude that "managers don't care about cleaning things up and refactoring, they just want to get things done and be done with it"--I say "ignorant and costly" because my billable hours were more than quadrupled versus having clean, editable code to begin with.
New features are not testable in isolation -- in fact, they aren't even compilable in isolation. I can compile and do lightweight testing of the data layer without more than a few heartbeats, but it takes two minutes to compile the web site just to see where my syntax or other compiler-detected errors are in my code additions (and I haven't been sleeping well lately so I'm hitting the Rebuild button and monitoring the Errors window an awful lot).
Even as I study (ever so slowly) for MCPD certification for my own reasons while I'm at home (spare me the biased anti-Microsoft flames on that, I don't care) I'm finding that Microsoft end developers (Morts) and Microsofties (Redmondites) alike are struggling with the bulk of their own technology and are heaping up upon themselves the knowledge of their own infrastructure before fully appreciating the beauty and the simplicity of the pure basics. Fortunately, Microsoft has had enough, and they've been long and hard at the drawing board to reinvent ASP.NET with ASP.NET MVC. But my interests are not entirely, or not necessarily, MVC-related.
All I really want is for this big fat pillow to be taken off of my face, and all these multiple layers of coats and sweatshirts and mittens and ski pants and snow boots to be taken off me, so I can stomp around wearing just enough of what I need to be decent. I need to breathe, I need to move around, and I need to be able to do some ninja kung fu.
These experiences I've had with ASP.NET solutions often make me sit around brainstorming how I'd build the same solutions differently. It's always easy to be everyone's skeptic, and it requires humility to acknowledge that just because you didn't write something or it isn't in your style or flavor doesn't mean it's bad or poorly produced. Sometimes, however, it is. And most solutions built with Web Forms, actually, are.
I intend to do my part, although intentions are easy, actions can be hard. But I've helped design an elaborate client-side MVC framework before, with great pride, I'm thinking about doing it again and implementing myself (I didn't have the luxury of exclusivity of implementation last time) and open sourcing it for the ASP.NET crowd. I'm also thinking about building a certain kind of ASP.NET solution I've frequently needed to work with (CRM? CMS? Social? something else? *grin* I won't say just yet), that takes advantage of certain principles.
What principles? I need to establish these before I even begin. These have already worked their way into my head and my attitude and are already an influence in every choice I make in web architecture, and I think they're worth sharing.
Why? Because despite the fact that client-side debugging tools are less evolved than on the server (no edit-and-continue in VS, for example, and FireBug is itself buggy), the overhead of managing presentation logic in a (server) context that doesn't relate to the user's runtime is just too much to deal with sometimes. Server code often takes time to recompile, whereas scripts don't typically require compilation at all. While in theory there is plenty of control on the server to debug what's needed while you have control of it in your own predictable environment, in practice there are just too many stop-edit-retry cycles going on in server-oriented view management.
And here's why that is. The big reason to move view to the client is because developers are just writing WAY too much view, business, and data mangling logic in the same scope and context. Client-driven view management nearly forces the developer to isolate view logic from data. In ASP.NET Web Forms, your 3 tiers are database, data+view mangling on the server, and finally whatever poor and unlucky little animal (browser) has to suffer with the resulting HTML. ASP.NET MVC changes that to essentially five tiers: the database, the models, the controller, the server-side view template,and finally whatever poor and unlucky little animal has to suffer with the resulting HTML. (Okay, Microsoft might be changing that with adopting jQuery and promising a client solution, we'll see.)
Most importantly, client-driven views make for a much richer, more interactive UIX (User Interface/eXperience); you can, for example reveal/hide or enable/disable a set of sub-questions depending on if the user checks a checkbox, with instant gratification. The ASP.NET Web Forms model would have it automatically perform a form post to refresh the page with the area enabled/disabled/revealed/hidden depending on the checked state. The difference is profound--a millisecond or two versus an entire second or two.
2. Abandon ASP.NET Web Forms. RoR implements a good model, try gleaning from that. ASP.NET MVC might be the way of the future. But frankly, most of the insanely popular web solutions on the Internet are PHP-driven these days, and I'm betting that's because PHP is on a similar coding model as ASP classic. No MVC stubs. No code-behinds. All that stuff can be tailored into a site as a matter of discipline (one of the reasons why PHP added OOP), but you're not forced into a one-size-fits-all paradigm, you just write your HTML templates and go.
Why? Web Forms is a bear. Its only two advantages are the ability to drag-and-drop functionality onto a page and watch it go, and premier vender (Microsoft / Visual Studio / MSDN) support. But it's difficult to optimize, difficult to templatize, difficult to abstract away from business logic layers (if at least difficult in that it requires intentional discipline), and puts way too much emphasis on the lifecycle of the page hit and postback. Look around at the ASP.NET web forms solutions out there. Web Forms is crusty like Visual Basic is crusty. It was created for, and is mostly used for, corporate grunts who use B2B (business-to-business) or internal apps. The rest of the web sites who use ASP.NET Web Forms suffer greatly from the painful code bloat of the ASP.NET Web Forms coding model and the horrible end-user costs of page bloat and round-trip navigation.
Kudos to Guthrie, et al, who developed Web Forms, it is a neat technology, but it is absolutely NOT a one-size-fits-all platform any more than my winter coat from Minnesota is. So congratulations to Microsoft for picking up the ball and working on ASP.NET MVC.
3. Use callbacks, not postbacks. Sometimes a single little control, like a textbox that behaves like an auto-suggest combobox, just needs a dedicated URL to perform an AJAX query against. But also, in ASP.NET space, I envision the return of multiple <form>'s, with DHTML-based page MVC controllers powering them all, driving them through AJAX/XmlHttpRequest.
Clearing and redrawing the screen is as bad as 1980s BBS ANSI screen redraws. It's obsolete. We don't need to write apps that way. Postbacks are cheap; don't be cheap. Be agile; use patterns, practices, and techniques that save development time and energy while avoiding the loss of a fluid user experience. <form action="someplace" /> should *always* have an onsubmit handler that returns false but runs an AJAX-driven post. The page should *optionally* redirect, but more likely only the area of the form or a region of the page (a containing DIV perhaps) should be replaced with the results of the post. Retain your header and sidebar in the user experience, and don't even let the content area go white for a split second. Buffer the HTML and display it when ready.
4. By default, allow users to log in without accessing a log in page. A slight tangent (or so it would seem), this is a UI design constraint, something that has been a pet peeve of mine ever since I realized that it's totally unnecessary to have a login page. If you don't want to put ugly Username/Password fields on the header or sidebar, use AJAX.
Why? Because if a user visits your site and sees something interesting and clicks on a link, but membership is required, the entire user experience is inturrupted by the disruption of a login screen. Instead, fade out to 60%, show a DHTML pop-up login, and fade in and continue forward. The user never leaves the page before seeing the link or functionality being accessed.
Imagine if Microsoft Windows' UAC, OS X's keyring, or GNOME's sudo auth, did a total clear-screen and ignored your action whenever it needed an Administrator password. Thankfully it doesn't work that way; the flow is paused with a small dialogue box, not flat out inturrupted.
5. Abandon the Internet Explorer "standard". This goes to corporate folks who target IE. I am not saying this as an anti-IE bigot. In fact, I'm saying this in Internet Explorer's favor. Internet Explorer 8 (currently not yet released, still in beta) introduces better web standards support than previous versions of Internet Explorer, and it's not nearly as far behind the trail of Firefox and WebKit (Safari, Chrome) as Internet Explorer 7 is. With this reality, web developers can finally and safely build W3C-compliant web applications without worrying too much about which browser vendor the user is using, and instead ask the user to get the latest version.
I've blogged it before and I'll mention it again, the one, first, and most recent time I ever had to personally fire a co-worker (due to my boss being out of town and my having authority, and my boss requesting it of me over the phone) was when I was working with an "imported" contractor who had a master's degree and full Microsoft certification, but could not copy two simple hyperlinks with revised URLs within less than 5-10 minutes while I watched. The whole office was in a gossipping frenzy, "What? Couldn't create a hyperlink? Who doesn't know HTML?! How could anyone not know HTML?!", but I realized that the core fundamentals have been taken for granted by us as technologists to such an extent that we've forgotten how important it is to value it in our hiring processes.
7. ADO.NET direct SQL code or ORM. Pick one. Just don't use data layers. Learn OOP fundamentals. The ActiveRecord pattern is nice. Alternatively, if it's a really lightweight web solution, just go back to wring plain Jane SQL with ADO.NET. If you're using C# 3.0, which of course you are in the context of this blog entry, then use LINQ-to-SQL or LINQ-to-Entities. On the ORM side, however, I'm losing favor with some of them because they often cater to a particular crowd. nHibernate comes to mind. I'm slow to say "enterprise" because, frankly, too many people assume the word "enterprise" for their solutions when they are anything but. Even web sites running at tens of thousands of hits a day and generating hundreds of thousands of dollars of revenue every month don't necessarily mean "enterprise". The term "enterprise" is more of a people management inference than a stability or quality effort. It's about getting many people on your team using the same patterns and not having loose and abrupt access to thrash the database. For that matter, the corporate slacks-and-tie crowd of ASP.NET "Morts" often can relate to "enterprise", and not even realize it. But for a very small team (10 or less) and especially for a micro ISV (developers numbering 5 or less) with a casual and agile attitude, take the word "enterprise" with a grain of salt. You don't need a gajillion layers of red tape. For that matter, though, smaller teams are usually small because of tighter budgets, and that usually means tighter deadlines, and that means developer productivity must reign right there alongside stability and performance. So find an ORM solution that emphasizes productivity (minimal maintenance and easily adaptable) and don't you dare trade routine refactoring for task-oriented focus as you'll end up just wasting everyone's time in the long run. Always include refactoring to simplicity in your maintenance schedule.
Why? Why go raw with ADO.NET direct SQL or choose an ORM? Because some people take the data layer WAY too far. Focus on what matters; take the effort to avoid the effort of fussing with the data tier. Data management is less important than most teams seem to think. The developer's focus should be on the UIX (User Interface/eXperience) and the application functionality, not how to store the data. There are three areas where the typical emphasis on data management is agreeably important: stability, performance (both of which are why we choose SQL Server over, oh, I dunno, XML files?) and queryability. The latter is important both for the application and for decision makers. But a fourth requirement is routinely overlooked, and that is the emphasis on being able to establish a lightweight developer workflow of working with data so that you can create features quickly and adapt existing code easily. Again, this is why a proper understanding of OOP, how to apply it, when to use it, etc, is emphasized all the time, by yours truly. Learn the value of abstraction and inheritence and of encapsulating interfaces (resulting in polymorphism). Your business objects should not be much more than POCO objects with application-realized properties. Adding a new simple data-persisted object, or modifying an existing one with, say, a new column, should not take more than a minute of one's time. Spend the rest of that time instead on how best to impress the user with a snappy, responsive user interface.
8. Callback-driven content should derive equally easily from your server, your partner's site, or some strange web service all the way in la-la land. We're aspiring for Web 3.0 now, but what happened to Web 2.0? We're building on top of it! Web 2.0 brought us mashups, single sign-ons, and cross-site social networking. FaceBook Applications are a classic demonstration of an excelling student of Web 2.0 now graduating and turning into a Web 3.0 student. Problem is, keeping the momentum going, who's driving this rig? If it's not you, you're missing out on the 3.0 vision.
Why? Because now you can. Hopefully by now you've already shifted the bulk of the view logic over to the client. And you've empowered your developers to focus on the front-end UIX. Now, though, the client view is empowered to do more. It still has to derive content from you, but in a callback-driven architecture, the content is URL-defined. As long as security implications are resolved, you now have the entire web at your [visitors'] disposal! Now turn it around to yourself and make your site benefit from it!
If you're already invoking web services, get that stuff off your servers! Web services queried from the server cost bandwidth and add significant time overhead before the page is released from the buffer to the client. The whole time you're fetching the results of a web service you're querying, the client is sitting there looking at a busy animation or a blank screen. Don't let that happen! Throw the client a bone and let it fetch the external resources on its own.
9. Pay attention to the UIX design styles of the non-ASP.NET Web 2.0/3.0 communities. There is such a thing as a "Web 2.0 look", whether we like to admit it or not; we web developers evolved and came up with innovations worth standardizing on, why can't designers evolve and come up with visual innovations worth standardizing on? If the end user's happiness is our goal, how are features and stable and performant code more important than aesthetics and ease of use? The problem is, one perspective of what "the Web 2.0 look" actually looks like is likely very different from another's or my own. I'm not speaking of heavy gloss or diagonal lines. I most certainly am not talking about the "bubble gum" look. (I jokingly mutter "Let's redesign that with diagonal lines and beveled corners!" now and then, but when I said that to my previous boss and co-worker, both of whom already looked down on me WAY more than they deserved to do, neither of them understood that I was joking. Or, at least, they didn't laugh or even smile.) No, but I am talking about the use of artistic elements, font choices and font styles, and layout characteristics that make a web site stand out from the crowd as being highly usable and engaging.
Let's demonstrate, shall we? Here are some sites and solutions that deserve some praise. None of them are ASP.NET-oriented.
http://www.deskaway.com/ (ignore the ugly logo but otherwise take in the beauty of the design and workflow; elegant font choice)
http://www.mosso.com/ (I really admire the visual layout of this JavaServer Pages driven site; fortunately I love the fact that they support ASP.NET on their product)
http://www.feedburner.com/ (these guys did a redesign not too terribly long ago; I really admire their selective use of background patterns, large-font textboxes, hover effects, and overall aesthetic flow)
http://www.phpbb.com/ (stunning layout, rock solid functionality, universal acceptance)
http://www.joomla.org/ (a beautiful and powerful open source CMS)
http://goplan.org/ (I don't like the color scheme but I do like the sheer simplicity
.. for that matter I also love the design and simplicity of http://www.curdbee.com/)
Now here are some ASP.NET-oriented sites. They are some of the most popular ASP.NET-driven sites and solutions, but their design characteristics, frankly, feel like the late 90s.
http://www.dotnetnuke.com/ (one of the most popular CMS/portal options in the open source ASP.NET community .. and, frankly, I hate it)
http://www.officelive.com/ (sign in and discover a lot of features with a "smart client" feel, but somehow it looks and feels slow, kludgy, and unrefined; I think it's because Microsoft doesn't get out much)
http://communityserver.com/ (it looks like a step in the right direction, but there's an awful lot of smoke and mirrors; follow the Community link and you'll see the best of what the ASP.NET community has to offer in the way of forums .. which frankly doesn't impress me as much as phpBB)
http://www.dotnetblogengine.net/ (my blog uses this, I like it well enough, but it's just one niche, and that's straight-and-simple blogs
http://subsonicproject.com/ (the ORM technology is very nice, but the site design is only "not bad", and the web site starter kit leave me shrugging with a shiver)
Let's face it, the ASP.NET community is not driven by designers.
Why? Why do I ramble on about such fluffy things? Because at my current job (see the intro text) the site design is a dump of one feature hastilly slapped on after another, and although the web app has a lot of features and plenty of AJAX to empower it here and there, it is, for the most part, an ugly and disgusting piece of cow dung in the area of UIX (User Interface/eXperience). AJAX functionality is based on third party components that "magically just work" while gobs and gobs of gobblygook code on the back end attempts to wire everything together, and what AJAX is there is both rare and slow, encumbered by page bloat and server bloat. The front-end appearance is amateurish, and I'm disheartened as a web developer to work with it.
Such seems to be the makeup of way too many ASP.NET solutions that I've seen.
10. Componentize the client. Use "controls" on the client in the same way you might use .ASCX controls on the server, and in the process of doing this, implement a lifecycle and communications subsystem on the client. This is what I want to do, and again I'm thinking of coming up with a framework to pursue it to compliment Microsoft's and others' efforts. If someone else (i.e. Microsoft) beats me to it, fine. I just hope theirs is better than mine.
Why? Well if you're going to emphasize the client, you need to be able to have a manageable development workflow.
On the competitive front, take a look at http://www.wavemaker.com/. Talk about drag-and-drop coding for smart client-side applications, driven by a rich server back-end (Java). This is some serious competition indeed.
Why? Every time the primary section of content changes, in my opinion, it should have a URI, and that should be reflected (somehow) in the browser's Address field. Even if it's going to be impossible to make the URL SEO-friendly (because there are no predictable hyperlinks that are spiderable), the user should be able to return to the same view later, without stepping through a number of steps of logging in and clicking around. This is partly the very definition of the World Wide Web: All around the world, content is reflected with a URL.
12. Glean from the others. Learn CakePHP. Build a simple symfony site. Watch the Ruby On Rails screencasts and consider diving in. And have you seen Jaxer lately?!
And absolutely, without hesitation, learn jQuery, which Microsoft will be supporting from here on out in Visual Studio and ASP.NET. Discover the plug-ins and try to figure out how you can leverage them in an ASP.NET environment.
Why? Because you've lived in a box for too long. You need to get out and smell the fresh air. Look at the people as they pass you by. You are a free human being. Dare yourself to think outside the box. Innovate. Did you know that most innovations are gleaning from other people's imaginative ideas and implemenations, and reapplying them in your own world, using your own tools? Why should Ruby on Rails have a coding workflow that's better than ASP.NET? Why should PHP be a significantly more popular platform on the public web than ASP.NET, what makes it so special besides being completely free of Redmondite ties? Can you interoperate with it? Have you tried? How can the innovations of Jaxer be applied to the IIS 7 and ASP.NET scenario, what can you do to see something as earth-shattering inside this Mortian realm? How can you leverage jQuery to make your web site do things you wouldn't have dreamed of trying to do otherwise? Or at least, how can you apply it to make your web application more responsive and interactive than the typical junk you've been pumping out?
You can be a much more productive developer. The whole world is at your fingertips, you only need to pay attention to it and learn how to leverage it to your advantage.
And these things, I believe, are what is going to drive the Web 1.0 Morts in the direction of Web 3.0, building on the hard work of yesteryear's progress and making the most of the most powerful, flexible, stable, and comprehensive server and web development technology currently in existence--ASP.NET and Visual Studio--by breaking out of their molds and entering into the new frontier.