- Added `Select *` plugin.
- Added `Duplicate Commands Per Context` plugin.
- Updated ByMethods plugin to show stack traces of commands.
- Added ability of closing/hiding different tabs.
- Added assembly info to methods info view.
- Updated the NuGet Packages
PM> Update-Package DNTProfiler.EntityFramework.Core
Or
PM> Update-Package DNTProfiler.NHibernate.Core
استفاده از Froala WYSIWYG Editor در ASP.NET
insertHTML: { title: 'Insert Code', icon: { type: 'font', value: 'fa fa-dollar' // Font Awesome icon class fa fa-* }, callback: function (editor) { this.saveSelection(); var thisEditor = this; var codeModal = $("<div>").addClass("froala-modal").appendTo("body"); var wrapper = $("<div>").addClass("f-modal-wrapper").appendTo(codeModal); $("<h4>").append('<span data-text="true">Insert Code</span>') .append($('<i class="fa fa-times" title="Cancel">') .click(function () { codeModal.remove(); })) .appendTo(wrapper); var dialog = "<textarea id='code_area' style='height: 211px; width: 538px;' /><label>Language:</label><select id='code_lang'><option>CSharp</option><option>VB</option><option>JScript</option><option>Sql</option><option>XML</option><option>CSS</option><option>Java</option><option>Delphi</option></select> <input type='button' name='insert' id='insert_btn' value='Insert' />"; $(dialog).appendTo(wrapper); $("#code_area").text(this.text()); if (!this.selectionInEditor()) { this.$element.focus(); } $('#insert_btn').click(function () { var lang = $("#code_lang").val(); var code = $("#code_area").val(); code = code.replace(/\s+$/, ""); // rtrim code = $('<span/>').text(code).html(); // encode var htmlCode = "<pre class='brush: " + lang.toLowerCase() + "' language='" + lang + "' name='code'>" + code + "</pre></div>"; // syntaxhighlighter با این کد هماهنگ است //var htmlCode = "<pre language='" + lang + "' name='code'>" + code + "</pre></div>"; var codeBlock = "<div align='left' dir='ltr'>" + htmlCode + "</div>"; thisEditor.restoreSelection(); thisEditor.insertHTML(codeBlock); thisEditor.saveUndoStep(); codeModal.remove(); }); } }
استفاده از Froala WYSIWYG Editor در ASP.NET
buttons: [ // .... , "insertHTML" //custom button ], customButtons: { insertHTML: { title: 'Insert Code', icon: { type: 'font', value: 'fa fa-dollar' // Font Awesome icon class fa fa-* }, callback: function (editor) { editor.saveSelection(); var codeModal = $("<div>").addClass("froala-modal").appendTo("body"); var wrapper = $("<div>").addClass("f-modal-wrapper").appendTo(codeModal); $("<h4>").append('<span data-text="true">Insert Code</span>') .append($('<i class="fa fa-times" title="Cancel">') .click(function () { codeModal.remove(); })) .appendTo(wrapper); var dialog = "<textarea id='code_area' style='height: 211px; width: 538px;' /><br/><label>Language:</label><select id='code_lang'><option>CSharp</option><option>VB</option><option>JScript</option><option>Sql</option><option>XML</option><option>CSS</option><option>Java</option><option>Delphi</option></select> <input type='button' name='insert' id='insert_btn' value='Insert' /><br/>"; $(dialog).appendTo(wrapper); $("#code_area").text(editor.text()); if (!editor.selectionInEditor()) { editor.$element.focus(); } $('#insert_btn').click(function () { var lang = $("#code_lang").val(); var code = $("#code_area").val(); code = code.replace(/\s+$/, ""); // rtrim code = $('<span/>').text(code).html(); // encode var htmlCode = "<pre language='" + lang + "' name='code'>" + code + "</pre></div>"; var codeBlock = "<div align='left' dir='ltr'>" + htmlCode + "</div><br/>"; editor.restoreSelection(); editor.insertHTML(codeBlock); editor.saveUndoStep(); codeModal.remove(); }); } } }
using MvcApplication3.Models; ... namespace MvcApplication3.Controllers { public class StudentController : Controller { public ActionResult Index() { //var data = new StudentsList(); return View(); } public ActionResult DataList() { var data = new StudentsList(); return PartialView("Pv_DataList", data); } #region Edit [HttpGet] public ActionResult Edit(int? id) { var data = new StudentsList().FirstOrDefault(p => p.Id == id); return PartialView("Pv_Edit", data); } [HttpPost] [AjaxOnly] [ValidateAntiForgeryToken] public ActionResult Edit(StudentModel model) { Thread.Sleep(1000); if (this.ModelState.IsValid) { return Json("ok", JsonRequestBehavior.AllowGet); } return Json("error"); } #endregion } }
@using MvcApplication3.Models @{ ViewBag.Title = "Student Index"; } <style> #div_StudentEditDialogContainer { padding: 15px; background-color: silver; border: 1px solid gray; -webkit-border-radius: pxpx; -moz-border-radius: pxpx; border-radius: 10px; display: none; position: absolute; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3); -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.4); box-shadow: 0 1px 3px rgba(0,0,0,0.5); } </style> <h2>Student Index</h2> <div id="div_StudentListViewContainer"> @{ Html.RenderAction("DataList", "Student");} </div> <div id="div_StudentEditDialogContainer"> @{ Html.RenderAction("Edit", "Student");} </div> <div id="div_StudentAddDialogContainer"> </div> <div id="div_StudentRemoveDialogContainer"> </div> <div id="div_StudentSearchDialogContainer"> </div> @section JavaScript{ <script type="text/javascript"> $(document).ready(function () { $("#div_StudentListViewContainer table input[type='submit']").click(function (e) { //show edit dialog e.preventDefault(); var id = $(this).parent().parent().attr('data-studentid'); var url = '@Url.Action("Edit", "Student")'; $.ajax({ type: "GET", url: url, data: { id: id }, beforeSend: function () { //$(waitingPanel).css("display", "block"); }, success: function (html) { if (html == "nodata") { $("#div_StudentEditDialogContainer").html("دانشجویی با این مشخصات یافت نشد!"); } else { $("#div_StudentEditDialogContainer").css("display", "block"); $("#div_StudentEditDialogContainer").html("").append(html); } }, complete: function () { //$(waitingPanel).css("display", "none"); } }); }); }); </script> }
@using MvcApplication3.Models @model StudentModel @{ var postUrl = Url.Action(actionName: "Edit", controllerName: "Student"); } @using (Html.BeginForm(actionName: "Edit", controllerName: "Student", method: FormMethod.Post, htmlAttributes: new { id = "frm_studentEdit" })) { @Html.ValidationSummary(true) @Html.AntiForgeryToken() <div class="editor-label"> @Html.LabelFor(model => model.Id) </div> <div class="editor-field"> @Html.EditorFor(model => model.Id) @Html.ValidationMessageFor(model => model.Id) </div> <div class="editor-label"> @Html.LabelFor(model => model.Code) </div> <div class="editor-field"> @Html.EditorFor(model => model.Code) @Html.ValidationMessageFor(model => model.Code) </div> <div class="editor-label"> @Html.LabelFor(model => model.FullName) </div> <div class="editor-field"> @Html.EditorFor(model => model.FullName) @Html.ValidationMessageFor(model => model.FullName) </div> <div class="editor-label"> @Html.LabelFor(model => model.BirthDate) </div> <div class="editor-field"> @Html.EditorFor(model => model.BirthDate) @Html.ValidationMessageFor(model => model.BirthDate) </div> <div class="editor-label"> @Html.LabelFor(model => model.IsMale) </div> <div class="editor-field"> @Html.EditorFor(model => model.IsMale) @Html.ValidationMessageFor(model => model.IsMale) </div> <p> <input type="submit" id="btn_Save" value="ذخیره" /> <input type="submit" id="btn_Cancel" value="انصراف" /> </p> } <script type="text/javascript"> $(function () { $("#btn_Save").click(function (e) { e.preventDefault(); var button = $(this); $("#frm_studentEdit").PostMvcFormAjax({ postUrl: '@postUrl', loginUrl: '/login', beforePostHandler: function () { //غیرفعال سازی دکمه ارسال button.attr('disabled', 'disabled'); button.val("..."); }, completeHandler: function (data) { //فعال سازی مجدد دکمه ارسال button.removeAttr('disabled'); button.val("ذخیره"); }, errorHandler: function () { alert('خطایی رخ داده است'); } }); }); $("#btn_Cancel").click(function (e) { e.preventDefault(); var button = $(this); $(".editDialog").parent("div").css("display", "none"); }); }); </script>
Visual Studio 2015 CTP 6 منتشر شد.
- UI Debugging Tools for XAML
- Single Sign-In
- CodeLens
- Code Maps
- Diagnostics Tools
- Exception Settings
- JavaScript Editor
- Unit Tests
- Visual Studio Emulator for Android
- Visual Studio C++ for Cross-Platform Mobile Development
- ASP.NET
- Visual C++
Other changes:
Bug Fixes & Known Issues
Related releases:
Team Foundation Server 2015 CTP
Integrated Terminal improvements - Find support, select/copy multiple pages.
Command Palette MRU list - Quickly find and run your recently used commands.
New Tasks menu - Top-level Tasks menu for running builds and configuring the task runner.
Automatic indentation - Auto indent while typing, moving, and pasting source code.
Emmet abbreviation enhancements - Add Emmet to any language. Multi-cursor support.
New Diff review pane - Navigate Diff editor changes quickly with F7, displayed in patch format.
Angular debugging recipe - Debug your Angular client in VS Code.
Better screen reader support - Aria properties to better present list and drop-down items.
Preview: 64 bit Windows build - Try out the Windows 64 bit version (Insiders build).
Preview: Multi-root workspaces - Open multiple projects in the same editor (Insiders build).
6.Visual Studio 2017 15.9 منتشر شد
These are the customer-reported issues addressed in 15.9.6:
- Installation failures of the Unity Editor component in China.
- Starting a new nanoFramework project from a template.
- Deployment errors after VS2017 update.
- Android Deploy failed - Error ADB0010.
- Error in German translation: info bar "session closed unexpectedly".
- Visual Studio 2017 create offline layout problem: Failed to load from stream for non-ENU layouts.
- Extension auto-update can leave extension disabled.